From a9cdd8c36b3e81af0477e6cb42032c28b00936f2 Mon Sep 17 00:00:00 2001 From: Martin Grbner <fi40zera@stud.informatik.uni-erlangen.de> Date: Mon, 25 Jul 2016 10:18:56 +0200 Subject: [PATCH] funktioniert --- 01_git/CHANGES | 168 - 01_git/CMakeLists.txt | 41 - 01_git/INSTALL | 50 - 01_git/LICENSE | 16 - 01_git/README | 81 - 01_git/astime.1 | 597 - 01_git/astime.c | 716 - 01_git/beo.astimerc | 48 - 01_git/cmake/compilerwarnings.cmake | 42 - 01_git/cmake/cppcheck.cmake | 12 - 01_git/default.astimerc | 46 - 01_git/include/astime_x.h | 27 - 01_git/include/safecopy.h | 22 - 01_git/include/state.h | 98 - 01_git/include/sunriset.h | 108 - 01_git/include/x_color.h | 49 - 01_git/include/x_primitives.h | 24 - 01_git/modern.astimerc | 40 - 01_git/resources/ampm.xpm | 23 - 01_git/resources/digits.xpm | 81 - 01_git/resources/dof.xpm | 53 - 01_git/resources/months.xpm | 83 - 01_git/sample.astimerc | 41 - 01_git/src/CMakeLists.txt | 7 - 01_git/src/astime_x.c | 1547 -- 01_git/src/safecopy.c | 26 - 01_git/src/sunriset.c | 465 - 01_git/src/sunriset_test.c | 31 - 01_git/src/x_color.c | 182 - 01_git/src/x_primitives.c | 130 - 01_git/thick.astimerc | 40 - 02_filter/CMakeLists.txt | 76 - 02_filter/Doxyfile.in | 1792 --- 02_filter/build/.gitkeep | 0 02_filter/cmake/Doxyfile.in | 1757 --- 02_filter/cmake/cccc.cmake | 13 - 02_filter/cmake/coloroutput.cmake | 20 - 02_filter/cmake/compilerwarnings.cmake | 56 - 02_filter/cmake/cppcheck.cmake | 13 - 02_filter/cmake/doxy.cmake | 31 - 02_filter/cmake/framac.cmake | 26 - 02_filter/cmake/lcov.cmake | 51 - 02_filter/cmake/processorcount.cmake | 28 - 02_filter/cmake/processorcount.cmake.orig | 32 - 02_filter/cmake/sanitizer.cmake | 7 - 02_filter/drivers/i386/ezs_counter.c | 138 - 02_filter/drivers/i386/ezs_fb.c | 88 - 02_filter/drivers/i386/ezs_tracer.cpp | 34 - 02_filter/drivers/include/.ezs_dma.h.swp | Bin 12288 -> 0 bytes 02_filter/drivers/include/ezs_counter.h | 25 - 02_filter/drivers/include/ezs_fb.h | 108 - 02_filter/ecos/ecos.ecc | 12682 ---------------- 02_filter/ecosenv.sh | 17 - 02_filter/emu/BIOS-bochs-latest | Bin 131072 -> 0 bytes 02_filter/emu/CMakeLists.txt | 213 - 02_filter/emu/bochs-experiment-runner.py | 128 - 02_filter/emu/bochsrc-gdb.in | 900 -- 02_filter/emu/bochsrc-term.in | 900 -- 02_filter/emu/bochsrc.in | 900 -- 02_filter/emu/frun.sh.in | 46 - 02_filter/emu/gdbinit.in | 6 - 02_filter/emu/grub.cfg.in | 7 - 02_filter/emu/pts.sh.in | 10 - 02_filter/emu/qrun.sh.in | 70 - 02_filter/emu/vgabios.bin | Bin 40448 -> 0 bytes 02_filter/eval/report.sql | 36 - 02_filter/include/fixedpoint.h | 18 - 02_filter/libEZS/include/ezs_common.h | 26 - 02_filter/libEZS/src/ezs_common.c | 12 - 02_filter/libEZS/src/fixedpoint.c | 72 - 02_filter/src/app.c | 99 - 03_TMR/CMakeLists.txt | 96 - 03_TMR/Doxyfile.in | 1792 --- 03_TMR/build/.keepdir | 0 03_TMR/cmake/Doxyfile.in | 1757 --- 03_TMR/cmake/UseEcos.cmake | 252 - 03_TMR/cmake/cccc.cmake | 13 - 03_TMR/cmake/coloroutput.cmake | 20 - 03_TMR/cmake/compilerwarnings.cmake | 56 - 03_TMR/cmake/cppcheck.cmake | 13 - 03_TMR/cmake/doxy.cmake | 31 - 03_TMR/cmake/emu.cmake | 224 - 03_TMR/cmake/framac.cmake | 26 - 03_TMR/cmake/lcov.cmake | 51 - 03_TMR/cmake/processorcount.cmake | 28 - 03_TMR/cmake/sanitizer.cmake | 7 - 03_TMR/ecos/ecos.ecc | 15595 -------------------- 03_TMR/ecosenv.sh | 17 - 03_TMR/emu/BIOS-bochs-latest | Bin 131072 -> 0 bytes 03_TMR/emu/CMakeLists.txt | 205 - 03_TMR/emu/bochs-experiment-runner.py | 128 - 03_TMR/emu/bochsrc-gdb.in | 900 -- 03_TMR/emu/bochsrc-term.in | 900 -- 03_TMR/emu/bochsrc.in | 900 -- 03_TMR/emu/frun.sh.in | 46 - 03_TMR/emu/gdbinit.in | 6 - 03_TMR/emu/grub.cfg.in | 7 - 03_TMR/emu/pts.sh.in | 10 - 03_TMR/emu/qrun.sh.in | 71 - 03_TMR/emu/vgabios.bin | Bin 40448 -> 0 bytes 03_TMR/include/filter.h | 22 - 03_TMR/include/filter.hpp | 6 - 03_TMR/include/watchdog.h | 14 - 03_TMR/libEZS/drivers/i386/ezs_adc.c | 20 - 03_TMR/libEZS/drivers/i386/ezs_counter.c | 144 - 03_TMR/libEZS/drivers/i386/ezs_dac.c | 19 - 03_TMR/libEZS/drivers/i386/ezs_fb.c | 88 - 03_TMR/libEZS/drivers/i386/ezs_keycodes.c | 22 - 03_TMR/libEZS/drivers/i386/ezs_tracer.cpp | 34 - 03_TMR/libEZS/hal/drivers/CMakeLists.txt | 0 03_TMR/libEZS/hal/drivers/DAC.cpp | 76 - 03_TMR/libEZS/hal/drivers/DAC.h | 32 - 03_TMR/libEZS/hal/include/AnalogDevice.h | 197 - 03_TMR/libEZS/hal/include/Config.h | 50 - 03_TMR/libEZS/hal/include/DMA.h | 125 - 03_TMR/libEZS/hal/include/DigitalDevice.h | 100 - 03_TMR/libEZS/hal/include/HalStartup.h | 66 - 03_TMR/libEZS/hal/include/I2CDevice.h | 67 - 03_TMR/libEZS/hal/include/OSAbstraction.h | 9 - 03_TMR/libEZS/hal/include/RS232Device.h | 139 - 03_TMR/libEZS/hal/include/SPIBus.h | 74 - 03_TMR/libEZS/include/ezs_adc.h | 19 - 03_TMR/libEZS/include/ezs_common.h | 26 - 03_TMR/libEZS/include/ezs_counter.h | 45 - 03_TMR/libEZS/include/ezs_dac.h | 33 - 03_TMR/libEZS/include/ezs_fb.h | 115 - 03_TMR/libEZS/include/ezs_fft.h | 42 - 03_TMR/libEZS/include/ezs_gcd.h | 24 - 03_TMR/libEZS/include/ezs_gpio.h | 24 - 03_TMR/libEZS/include/ezs_interpolation.h | 13 - 03_TMR/libEZS/include/ezs_io.h | 17 - 03_TMR/libEZS/include/ezs_keycodes.h | 16 - 03_TMR/libEZS/include/ezs_outputs.h | 22 - 03_TMR/libEZS/include/ezs_plot.h | 28 - 03_TMR/libEZS/include/ezs_plot_pds.h | 18 - 03_TMR/libEZS/include/ezs_rs232.h | 41 - 03_TMR/libEZS/include/ezs_sensors.h | 22 - 03_TMR/libEZS/include/ezs_stopwatch.h | 39 - 03_TMR/libEZS/include/ezs_trace.h | 14 - 03_TMR/libEZS/include/ezs_window.h | 28 - 03_TMR/libEZS/include/fixedpoint.h | 18 - 03_TMR/libEZS/src/ezs_common.c | 10 - 03_TMR/libEZS/src/ezs_dac.c | 21 - 03_TMR/libEZS/src/ezs_fb.c | 93 - 03_TMR/libEZS/src/ezs_fft.c | 219 - 03_TMR/libEZS/src/ezs_gcd.c | 20 - 03_TMR/libEZS/src/ezs_impure_ptr.c | 1 - 03_TMR/libEZS/src/ezs_interpolation.c | 82 - 03_TMR/libEZS/src/ezs_io.c | 20 - 03_TMR/libEZS/src/ezs_outputs.c | 31 - 03_TMR/libEZS/src/ezs_plot.c | 147 - 03_TMR/libEZS/src/ezs_plot_pds.c | 51 - 03_TMR/libEZS/src/ezs_sensors.c | 50 - 03_TMR/libEZS/src/ezs_stopwatch.c | 41 - 03_TMR/libEZS/src/ezs_tracer.cpp | 43 - 03_TMR/libEZS/src/ezs_window.c | 31 - 03_TMR/libEZS/src/fixedpoint.c | 70 - 03_TMR/src/app.c | 84 - 03_TMR/src/app_ext.cpp | 82 - 03_TMR/src/filter.c | 14 - 03_TMR/src/watchdog.c | 51 - 04_EAN/CMakeLists.txt | 102 - 04_EAN/Doxyfile.in | 1792 --- 04_EAN/build/.keepdir | 0 04_EAN/cmake/Doxyfile.in | 1757 --- 04_EAN/cmake/UseEcos.cmake | 252 - 04_EAN/cmake/cccc.cmake | 13 - 04_EAN/cmake/coloroutput.cmake | 20 - 04_EAN/cmake/compilerwarnings.cmake | 56 - 04_EAN/cmake/cppcheck.cmake | 13 - 04_EAN/cmake/doxy.cmake | 31 - 04_EAN/cmake/emu.cmake | 175 - 04_EAN/cmake/framac.cmake | 26 - 04_EAN/cmake/lcov.cmake | 51 - 04_EAN/cmake/processorcount.cmake | 28 - 04_EAN/cmake/sanitizer.cmake | 7 - 04_EAN/ecos/ecos.ecc | 15594 ------------------- 04_EAN/ecosenv.sh | 18 - 04_EAN/emu/BIOS-bochs-latest | Bin 131072 -> 0 bytes 04_EAN/emu/fail.sh | 205 - 04_EAN/emu/findport.pl | 43 - 04_EAN/emu/gdbinit.in | 6 - 04_EAN/emu/prepareISO.sh | 34 - 04_EAN/emu/qrun.sh.in | 71 - 04_EAN/emu/vgabios.bin | Bin 40448 -> 0 bytes 04_EAN/i4vezs-deploy.pub | 1 - 04_EAN/include/fail.h | 16 - 04_EAN/include/filter.h | 22 - 04_EAN/include/filter.hpp | 6 - 04_EAN/libEZS/drivers/i386/ezs_adc.c | 20 - 04_EAN/libEZS/drivers/i386/ezs_counter.c | 144 - 04_EAN/libEZS/drivers/i386/ezs_dac.c | 19 - 04_EAN/libEZS/drivers/i386/ezs_fb.c | 88 - 04_EAN/libEZS/drivers/i386/ezs_keycodes.c | 22 - 04_EAN/libEZS/drivers/i386/ezs_tracer.cpp | 34 - 04_EAN/libEZS/hal/drivers/CMakeLists.txt | 0 04_EAN/libEZS/hal/drivers/DAC.cpp | 76 - 04_EAN/libEZS/hal/drivers/DAC.h | 32 - 04_EAN/libEZS/hal/include/AnalogDevice.h | 197 - 04_EAN/libEZS/hal/include/Config.h | 50 - 04_EAN/libEZS/hal/include/DMA.h | 125 - 04_EAN/libEZS/hal/include/DigitalDevice.h | 100 - 04_EAN/libEZS/hal/include/HalStartup.h | 66 - 04_EAN/libEZS/hal/include/I2CDevice.h | 67 - 04_EAN/libEZS/hal/include/OSAbstraction.h | 9 - 04_EAN/libEZS/hal/include/RS232Device.h | 139 - 04_EAN/libEZS/hal/include/SPIBus.h | 74 - 04_EAN/libEZS/include/ezs_adc.h | 19 - 04_EAN/libEZS/include/ezs_common.h | 26 - 04_EAN/libEZS/include/ezs_counter.h | 45 - 04_EAN/libEZS/include/ezs_dac.h | 33 - 04_EAN/libEZS/include/ezs_fb.h | 115 - 04_EAN/libEZS/include/ezs_fft.h | 42 - 04_EAN/libEZS/include/ezs_gcd.h | 24 - 04_EAN/libEZS/include/ezs_gpio.h | 24 - 04_EAN/libEZS/include/ezs_interpolation.h | 13 - 04_EAN/libEZS/include/ezs_io.h | 17 - 04_EAN/libEZS/include/ezs_keycodes.h | 16 - 04_EAN/libEZS/include/ezs_outputs.h | 22 - 04_EAN/libEZS/include/ezs_plot.h | 28 - 04_EAN/libEZS/include/ezs_plot_pds.h | 18 - 04_EAN/libEZS/include/ezs_rs232.h | 41 - 04_EAN/libEZS/include/ezs_sensors.h | 22 - 04_EAN/libEZS/include/ezs_stopwatch.h | 39 - 04_EAN/libEZS/include/ezs_trace.h | 14 - 04_EAN/libEZS/include/ezs_window.h | 28 - 04_EAN/libEZS/include/fixedpoint.h | 18 - 04_EAN/libEZS/src/ezs_common.c | 10 - 04_EAN/libEZS/src/ezs_dac.c | 21 - 04_EAN/libEZS/src/ezs_fb.c | 93 - 04_EAN/libEZS/src/ezs_fft.c | 219 - 04_EAN/libEZS/src/ezs_gcd.c | 20 - 04_EAN/libEZS/src/ezs_impure_ptr.c | 1 - 04_EAN/libEZS/src/ezs_interpolation.c | 82 - 04_EAN/libEZS/src/ezs_io.c | 20 - 04_EAN/libEZS/src/ezs_outputs.c | 31 - 04_EAN/libEZS/src/ezs_plot.c | 147 - 04_EAN/libEZS/src/ezs_plot_pds.c | 51 - 04_EAN/libEZS/src/ezs_stopwatch.c | 41 - 04_EAN/libEZS/src/ezs_tracer.cpp | 43 - 04_EAN/libEZS/src/ezs_window.c | 31 - 04_EAN/libEZS/src/fixedpoint.c | 70 - 04_EAN/my.cnf | 5 - 04_EAN/src/app.c | 134 - 04_EAN/src/app_ext.c | 92 - 04_EAN/src/ezs_sensors.c | 55 - 04_EAN/src/fail.c | 7 - 04_EAN/src/filter.c | 14 - 06_Analyse/.~lock.Aufgabe 6 Fragen.odt# | 1 - 06_Analyse/src/stackanalyzer.c | 11 +- 06_Analyse/src/stackanalyzer_arm | Bin 89630 -> 0 bytes 06_Analyse/src/stackanalyzer_arm.ais | 26 +- 06_Analyse/src/stackanalyzer_arm.c | 20 +- 06_Analyse/src/tree.c | 57 +- 07_Astree/include/ab_filter.h | 13 +- 07_Astree/include/sensor.h | 17 +- 07_Astree/src/ab_filter.c | 87 + 07_Astree/src/main.c | 166 +- 07_Astree/src/output.txt | 2000 +++ 07_Astree/src/sensor.c | 67 +- 07_Astree/src/sensor.dat | 1 - 261 files changed, 2392 insertions(+), 75017 deletions(-) delete mode 100644 01_git/CHANGES delete mode 100644 01_git/CMakeLists.txt delete mode 100644 01_git/INSTALL delete mode 100644 01_git/LICENSE delete mode 100644 01_git/README delete mode 100644 01_git/astime.1 delete mode 100644 01_git/astime.c delete mode 100644 01_git/beo.astimerc delete mode 100644 01_git/cmake/compilerwarnings.cmake delete mode 100644 01_git/cmake/cppcheck.cmake delete mode 100644 01_git/default.astimerc delete mode 100644 01_git/include/astime_x.h delete mode 100644 01_git/include/safecopy.h delete mode 100644 01_git/include/state.h delete mode 100644 01_git/include/sunriset.h delete mode 100644 01_git/include/x_color.h delete mode 100644 01_git/include/x_primitives.h delete mode 100644 01_git/modern.astimerc delete mode 100644 01_git/resources/ampm.xpm delete mode 100644 01_git/resources/digits.xpm delete mode 100644 01_git/resources/dof.xpm delete mode 100644 01_git/resources/months.xpm delete mode 100644 01_git/sample.astimerc delete mode 100644 01_git/src/CMakeLists.txt delete mode 100644 01_git/src/astime_x.c delete mode 100644 01_git/src/safecopy.c delete mode 100644 01_git/src/sunriset.c delete mode 100644 01_git/src/sunriset_test.c delete mode 100644 01_git/src/x_color.c delete mode 100644 01_git/src/x_primitives.c delete mode 100644 01_git/thick.astimerc delete mode 100644 02_filter/CMakeLists.txt delete mode 100644 02_filter/Doxyfile.in delete mode 100644 02_filter/build/.gitkeep delete mode 100644 02_filter/cmake/Doxyfile.in delete mode 100644 02_filter/cmake/cccc.cmake delete mode 100644 02_filter/cmake/coloroutput.cmake delete mode 100644 02_filter/cmake/compilerwarnings.cmake delete mode 100644 02_filter/cmake/cppcheck.cmake delete mode 100644 02_filter/cmake/doxy.cmake delete mode 100644 02_filter/cmake/framac.cmake delete mode 100644 02_filter/cmake/lcov.cmake delete mode 100644 02_filter/cmake/processorcount.cmake delete mode 100644 02_filter/cmake/processorcount.cmake.orig delete mode 100644 02_filter/cmake/sanitizer.cmake delete mode 100644 02_filter/drivers/i386/ezs_counter.c delete mode 100644 02_filter/drivers/i386/ezs_fb.c delete mode 100644 02_filter/drivers/i386/ezs_tracer.cpp delete mode 100644 02_filter/drivers/include/.ezs_dma.h.swp delete mode 100644 02_filter/drivers/include/ezs_counter.h delete mode 100644 02_filter/drivers/include/ezs_fb.h delete mode 100644 02_filter/ecos/ecos.ecc delete mode 100755 02_filter/ecosenv.sh delete mode 100644 02_filter/emu/BIOS-bochs-latest delete mode 100644 02_filter/emu/CMakeLists.txt delete mode 100755 02_filter/emu/bochs-experiment-runner.py delete mode 100644 02_filter/emu/bochsrc-gdb.in delete mode 100644 02_filter/emu/bochsrc-term.in delete mode 100644 02_filter/emu/bochsrc.in delete mode 100755 02_filter/emu/frun.sh.in delete mode 100644 02_filter/emu/gdbinit.in delete mode 100644 02_filter/emu/grub.cfg.in delete mode 100755 02_filter/emu/pts.sh.in delete mode 100755 02_filter/emu/qrun.sh.in delete mode 100644 02_filter/emu/vgabios.bin delete mode 100644 02_filter/eval/report.sql delete mode 100644 02_filter/include/fixedpoint.h delete mode 100644 02_filter/libEZS/include/ezs_common.h delete mode 100644 02_filter/libEZS/src/ezs_common.c delete mode 100644 02_filter/libEZS/src/fixedpoint.c delete mode 100644 02_filter/src/app.c delete mode 100644 03_TMR/CMakeLists.txt delete mode 100644 03_TMR/Doxyfile.in delete mode 100644 03_TMR/build/.keepdir delete mode 100644 03_TMR/cmake/Doxyfile.in delete mode 100644 03_TMR/cmake/UseEcos.cmake delete mode 100644 03_TMR/cmake/cccc.cmake delete mode 100644 03_TMR/cmake/coloroutput.cmake delete mode 100644 03_TMR/cmake/compilerwarnings.cmake delete mode 100644 03_TMR/cmake/cppcheck.cmake delete mode 100644 03_TMR/cmake/doxy.cmake delete mode 100644 03_TMR/cmake/emu.cmake delete mode 100644 03_TMR/cmake/framac.cmake delete mode 100644 03_TMR/cmake/lcov.cmake delete mode 100644 03_TMR/cmake/processorcount.cmake delete mode 100644 03_TMR/cmake/sanitizer.cmake delete mode 100644 03_TMR/ecos/ecos.ecc delete mode 100755 03_TMR/ecosenv.sh delete mode 100644 03_TMR/emu/BIOS-bochs-latest delete mode 100644 03_TMR/emu/CMakeLists.txt delete mode 100755 03_TMR/emu/bochs-experiment-runner.py delete mode 100644 03_TMR/emu/bochsrc-gdb.in delete mode 100644 03_TMR/emu/bochsrc-term.in delete mode 100644 03_TMR/emu/bochsrc.in delete mode 100755 03_TMR/emu/frun.sh.in delete mode 100644 03_TMR/emu/gdbinit.in delete mode 100644 03_TMR/emu/grub.cfg.in delete mode 100755 03_TMR/emu/pts.sh.in delete mode 100755 03_TMR/emu/qrun.sh.in delete mode 100644 03_TMR/emu/vgabios.bin delete mode 100644 03_TMR/include/filter.h delete mode 100644 03_TMR/include/filter.hpp delete mode 100644 03_TMR/include/watchdog.h delete mode 100644 03_TMR/libEZS/drivers/i386/ezs_adc.c delete mode 100644 03_TMR/libEZS/drivers/i386/ezs_counter.c delete mode 100644 03_TMR/libEZS/drivers/i386/ezs_dac.c delete mode 100644 03_TMR/libEZS/drivers/i386/ezs_fb.c delete mode 100644 03_TMR/libEZS/drivers/i386/ezs_keycodes.c delete mode 100644 03_TMR/libEZS/drivers/i386/ezs_tracer.cpp delete mode 100644 03_TMR/libEZS/hal/drivers/CMakeLists.txt delete mode 100644 03_TMR/libEZS/hal/drivers/DAC.cpp delete mode 100644 03_TMR/libEZS/hal/drivers/DAC.h delete mode 100644 03_TMR/libEZS/hal/include/AnalogDevice.h delete mode 100644 03_TMR/libEZS/hal/include/Config.h delete mode 100644 03_TMR/libEZS/hal/include/DMA.h delete mode 100644 03_TMR/libEZS/hal/include/DigitalDevice.h delete mode 100644 03_TMR/libEZS/hal/include/HalStartup.h delete mode 100644 03_TMR/libEZS/hal/include/I2CDevice.h delete mode 100644 03_TMR/libEZS/hal/include/OSAbstraction.h delete mode 100644 03_TMR/libEZS/hal/include/RS232Device.h delete mode 100644 03_TMR/libEZS/hal/include/SPIBus.h delete mode 100644 03_TMR/libEZS/include/ezs_adc.h delete mode 100644 03_TMR/libEZS/include/ezs_common.h delete mode 100644 03_TMR/libEZS/include/ezs_counter.h delete mode 100644 03_TMR/libEZS/include/ezs_dac.h delete mode 100644 03_TMR/libEZS/include/ezs_fb.h delete mode 100644 03_TMR/libEZS/include/ezs_fft.h delete mode 100644 03_TMR/libEZS/include/ezs_gcd.h delete mode 100644 03_TMR/libEZS/include/ezs_gpio.h delete mode 100644 03_TMR/libEZS/include/ezs_interpolation.h delete mode 100644 03_TMR/libEZS/include/ezs_io.h delete mode 100644 03_TMR/libEZS/include/ezs_keycodes.h delete mode 100644 03_TMR/libEZS/include/ezs_outputs.h delete mode 100644 03_TMR/libEZS/include/ezs_plot.h delete mode 100644 03_TMR/libEZS/include/ezs_plot_pds.h delete mode 100644 03_TMR/libEZS/include/ezs_rs232.h delete mode 100644 03_TMR/libEZS/include/ezs_sensors.h delete mode 100644 03_TMR/libEZS/include/ezs_stopwatch.h delete mode 100644 03_TMR/libEZS/include/ezs_trace.h delete mode 100644 03_TMR/libEZS/include/ezs_window.h delete mode 100644 03_TMR/libEZS/include/fixedpoint.h delete mode 100644 03_TMR/libEZS/src/ezs_common.c delete mode 100644 03_TMR/libEZS/src/ezs_dac.c delete mode 100644 03_TMR/libEZS/src/ezs_fb.c delete mode 100644 03_TMR/libEZS/src/ezs_fft.c delete mode 100644 03_TMR/libEZS/src/ezs_gcd.c delete mode 100644 03_TMR/libEZS/src/ezs_impure_ptr.c delete mode 100644 03_TMR/libEZS/src/ezs_interpolation.c delete mode 100644 03_TMR/libEZS/src/ezs_io.c delete mode 100644 03_TMR/libEZS/src/ezs_outputs.c delete mode 100644 03_TMR/libEZS/src/ezs_plot.c delete mode 100644 03_TMR/libEZS/src/ezs_plot_pds.c delete mode 100644 03_TMR/libEZS/src/ezs_sensors.c delete mode 100644 03_TMR/libEZS/src/ezs_stopwatch.c delete mode 100644 03_TMR/libEZS/src/ezs_tracer.cpp delete mode 100644 03_TMR/libEZS/src/ezs_window.c delete mode 100644 03_TMR/libEZS/src/fixedpoint.c delete mode 100644 03_TMR/src/app.c delete mode 100644 03_TMR/src/app_ext.cpp delete mode 100644 03_TMR/src/filter.c delete mode 100644 03_TMR/src/watchdog.c delete mode 100644 04_EAN/CMakeLists.txt delete mode 100644 04_EAN/Doxyfile.in delete mode 100644 04_EAN/build/.keepdir delete mode 100644 04_EAN/cmake/Doxyfile.in delete mode 100644 04_EAN/cmake/UseEcos.cmake delete mode 100644 04_EAN/cmake/cccc.cmake delete mode 100644 04_EAN/cmake/coloroutput.cmake delete mode 100644 04_EAN/cmake/compilerwarnings.cmake delete mode 100644 04_EAN/cmake/cppcheck.cmake delete mode 100644 04_EAN/cmake/doxy.cmake delete mode 100644 04_EAN/cmake/emu.cmake delete mode 100644 04_EAN/cmake/framac.cmake delete mode 100644 04_EAN/cmake/lcov.cmake delete mode 100644 04_EAN/cmake/processorcount.cmake delete mode 100644 04_EAN/cmake/sanitizer.cmake delete mode 100644 04_EAN/ecos/ecos.ecc delete mode 100755 04_EAN/ecosenv.sh delete mode 100644 04_EAN/emu/BIOS-bochs-latest delete mode 100755 04_EAN/emu/fail.sh delete mode 100755 04_EAN/emu/findport.pl delete mode 100644 04_EAN/emu/gdbinit.in delete mode 100755 04_EAN/emu/prepareISO.sh delete mode 100755 04_EAN/emu/qrun.sh.in delete mode 100644 04_EAN/emu/vgabios.bin delete mode 100644 04_EAN/i4vezs-deploy.pub delete mode 100644 04_EAN/include/fail.h delete mode 100644 04_EAN/include/filter.h delete mode 100644 04_EAN/include/filter.hpp delete mode 100644 04_EAN/libEZS/drivers/i386/ezs_adc.c delete mode 100644 04_EAN/libEZS/drivers/i386/ezs_counter.c delete mode 100644 04_EAN/libEZS/drivers/i386/ezs_dac.c delete mode 100644 04_EAN/libEZS/drivers/i386/ezs_fb.c delete mode 100644 04_EAN/libEZS/drivers/i386/ezs_keycodes.c delete mode 100644 04_EAN/libEZS/drivers/i386/ezs_tracer.cpp delete mode 100644 04_EAN/libEZS/hal/drivers/CMakeLists.txt delete mode 100644 04_EAN/libEZS/hal/drivers/DAC.cpp delete mode 100644 04_EAN/libEZS/hal/drivers/DAC.h delete mode 100644 04_EAN/libEZS/hal/include/AnalogDevice.h delete mode 100644 04_EAN/libEZS/hal/include/Config.h delete mode 100644 04_EAN/libEZS/hal/include/DMA.h delete mode 100644 04_EAN/libEZS/hal/include/DigitalDevice.h delete mode 100644 04_EAN/libEZS/hal/include/HalStartup.h delete mode 100644 04_EAN/libEZS/hal/include/I2CDevice.h delete mode 100644 04_EAN/libEZS/hal/include/OSAbstraction.h delete mode 100644 04_EAN/libEZS/hal/include/RS232Device.h delete mode 100644 04_EAN/libEZS/hal/include/SPIBus.h delete mode 100644 04_EAN/libEZS/include/ezs_adc.h delete mode 100644 04_EAN/libEZS/include/ezs_common.h delete mode 100644 04_EAN/libEZS/include/ezs_counter.h delete mode 100644 04_EAN/libEZS/include/ezs_dac.h delete mode 100644 04_EAN/libEZS/include/ezs_fb.h delete mode 100644 04_EAN/libEZS/include/ezs_fft.h delete mode 100644 04_EAN/libEZS/include/ezs_gcd.h delete mode 100644 04_EAN/libEZS/include/ezs_gpio.h delete mode 100644 04_EAN/libEZS/include/ezs_interpolation.h delete mode 100644 04_EAN/libEZS/include/ezs_io.h delete mode 100644 04_EAN/libEZS/include/ezs_keycodes.h delete mode 100644 04_EAN/libEZS/include/ezs_outputs.h delete mode 100644 04_EAN/libEZS/include/ezs_plot.h delete mode 100644 04_EAN/libEZS/include/ezs_plot_pds.h delete mode 100644 04_EAN/libEZS/include/ezs_rs232.h delete mode 100644 04_EAN/libEZS/include/ezs_sensors.h delete mode 100644 04_EAN/libEZS/include/ezs_stopwatch.h delete mode 100644 04_EAN/libEZS/include/ezs_trace.h delete mode 100644 04_EAN/libEZS/include/ezs_window.h delete mode 100644 04_EAN/libEZS/include/fixedpoint.h delete mode 100644 04_EAN/libEZS/src/ezs_common.c delete mode 100644 04_EAN/libEZS/src/ezs_dac.c delete mode 100644 04_EAN/libEZS/src/ezs_fb.c delete mode 100644 04_EAN/libEZS/src/ezs_fft.c delete mode 100644 04_EAN/libEZS/src/ezs_gcd.c delete mode 100644 04_EAN/libEZS/src/ezs_impure_ptr.c delete mode 100644 04_EAN/libEZS/src/ezs_interpolation.c delete mode 100644 04_EAN/libEZS/src/ezs_io.c delete mode 100644 04_EAN/libEZS/src/ezs_outputs.c delete mode 100644 04_EAN/libEZS/src/ezs_plot.c delete mode 100644 04_EAN/libEZS/src/ezs_plot_pds.c delete mode 100644 04_EAN/libEZS/src/ezs_stopwatch.c delete mode 100644 04_EAN/libEZS/src/ezs_tracer.cpp delete mode 100644 04_EAN/libEZS/src/ezs_window.c delete mode 100644 04_EAN/libEZS/src/fixedpoint.c delete mode 100644 04_EAN/my.cnf delete mode 100644 04_EAN/src/app.c delete mode 100644 04_EAN/src/app_ext.c delete mode 100644 04_EAN/src/ezs_sensors.c delete mode 100644 04_EAN/src/fail.c delete mode 100644 04_EAN/src/filter.c delete mode 100644 06_Analyse/.~lock.Aufgabe 6 Fragen.odt# delete mode 100755 06_Analyse/src/stackanalyzer_arm create mode 100644 07_Astree/src/output.txt diff --git a/01_git/CHANGES b/01_git/CHANGES deleted file mode 100644 index 5a48a14..0000000 --- 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 1de7ff7..0000000 --- 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 9d198db..0000000 --- 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 ac91731..0000000 --- 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 71f61e5..0000000 --- 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 7d4bfcf..0000000 --- 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 e02977e..0000000 --- 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 31fb6e3..0000000 --- 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 93b0fb4..0000000 --- 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 724b838..0000000 --- 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 c51e308..0000000 --- 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 0a984ac..0000000 --- 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 34df5f4..0000000 --- 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 1f53e37..0000000 --- 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 c6524f1..0000000 --- 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 2a44647..0000000 --- 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 1b1b7a3..0000000 --- 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 22fd194..0000000 --- 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 e902a9f..0000000 --- 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 73dd3d5..0000000 --- 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 a62a8d0..0000000 --- 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 b9c7058..0000000 --- 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 b8a6801..0000000 --- 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 e35f051..0000000 --- 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 3ad876d..0000000 --- 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 */ - &mXpm.pixmap, /* resulting pixmap */ - &mXpm.mask, - &mXpm.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 69a3792..0000000 --- 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 64c8ce3..0000000 --- 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 285821a..0000000 --- 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 23206d9..0000000 --- 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 5fd7455..0000000 --- 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 8a4b851..0000000 --- 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 5db8b57..0000000 --- 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 e3d7210..0000000 --- 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 e69de29..0000000 diff --git a/02_filter/cmake/Doxyfile.in b/02_filter/cmake/Doxyfile.in deleted file mode 100644 index 1084619..0000000 --- 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 ea0af18..0000000 --- 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 1280d32..0000000 --- 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 e89c8c3..0000000 --- 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 6c5f005..0000000 --- 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 4037ae0..0000000 --- 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 ecc49a1..0000000 --- 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 b4efe2f..0000000 --- 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 bc9b4d6..0000000 --- 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 fc84863..0000000 --- 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 dbeaafb..0000000 --- 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 a7821ad..0000000 --- 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 7bbebc3..0000000 --- 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 635b57a..0000000 --- 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 GIT binary patch literal 0 HcmV?d00001 literal 12288 zcmeI2O^g&p6vqoiK?G6oU<_!vn<#E(w`X?=5|^OEbgz!?EM#T@F(hSAclAs`Pxsg# zD~sVKC*v31H1VJw{76WQ2XDs2Xp9#<8580S6AykHPagDNJ>9+213SxEYQk@JyXw`e ze*b>;y0TQOe5_Wd4^7Pyd~PRX%aM<d{Cs{dd6^U91g3YkYkIP4)W<PnQ4WLYQ8uzq z>jnNP%@Vz++tV`Vn(=f~<7Y#5yvb(D(=!^k{E(qRGkZOJ#ZKF7@mY;8b1#~V0?}^s zfZLiKh-Dsxn(!<)wt3>h?wV7b_3lFTD+R7Y1>(q=+`o;?&P<ob$L^y$cO1PAMNlCt z1(X6x0i}RaKq;UUPzopou5SgR-Ujk7B)9=Q3pS+Shx#Z5lmbctrGQdEDWDWk3Md7X z0!jg;fKosy@IO(&v<ca|k&w$bAt3z!zx*4(kJ}0P8hipi0Plde!CT-(@C>Mey`T(s zfsNos@WX8w2QGlq;1oCrc7Qv;FWU(D5_|#P1Oa#g)Ib^R2D`u}@Y_~Geg)rwPr-ZO zb#MW!00!oP0VcrRU?ceJRziLUm%z8+8}L4O4TRtXcnTZ<6W}he3H-eUv4hLtb8r#7 z0nURL00VV!08D~A!A`Ip{B#S(f=l3g@D=z7Tm%=uE1(Ph+>Cny7r}?%RqzsUfdCxn zfPz0Z5%L*04;}&k+>Ei{U2q263+@5C!4|L?Yyk3Emhn@4lmbctrNB7%Y~fH%qd05D z^m>Io&T5O*g`>KmlYS>TN5+L?bB8i!_1rj=K)GdK*i@d*!qF-g@`$x!$Ke4Jp5yOH zz0nDDmS`-zXg`Z+&usG&O$JW%t^0k``_SofuN`$BoGUuETy6%;aYYYbey`wo*wz-I z*>X9vI;Q7wccd-%Mw!x)pG>MH9D)mF$V)3dPNVE9!WC|9q>EhcnkOP*y5g)E3E!h; z9QjZ%ZR4eD^rDM^TZscZ`|VnX)_t4PF22?qkUhjy-BR&6$pnyI3Zf6$$hZpqQl$wE z;9s6fLr>;@WKd!!Z6+sazndbXco4+BC`99shv8(*UF35NXVsM!Sv;(@67fB<zeKah z6S<J`E;KJu)3yU1hIndLz`Hn!$ZVeehR)*iWG#Uag-nr6NqqUu4X1H_bEyJp|40cE zsq=wZwo!y3C6|uk5R38Q^x|YI5Ln==iAPN@ALO@AAyA@C+(*c{td$j#UuJu@DjFOc z$JNW@fryga%KDG-KsYNUBA1D*D%^{^`QU<A`uyO8d5#ZGR?9>mm{HH=zxo`xqoRMg z5C&aW&CoJ!KH&I}>szPgGRZ<|3a{-Jg3~z;#oB8Gmn^kHOtoyKC#!#O_KHlLV)qpj zv+4>Gd5y`6V+*0md9u~aMZ1I2Eh5>Nw$IMUTHRR*GsC1lcg^rL3(e(3BrLzAQC4(m zm0jnl-LK|z*sbPM$@0Jg-WDO2ZsuCP7W%94YCXxEs~rQ*<ixD!2g!YB!B~Eb<u}|a zuUWcE2dB*zZr^^ux8-|L;JeAv9~_VbAnQRPth6f3<;fOCL2N}?l1SzG8AR++_zk06 z4*9Ze7!{o@H7bkEd80A6w%zeYZOOP6!(&FHHh*Hka&4c@+Tvpi2CJT^E*K-Gt{h!D zj4eTJ2|=$JM@82gMiUzdquMa)#v+W@wZ%3gvt8S`T4`1*y20v)^-(u@XyI`6$@PrV zfY))Q8}-Vfp8CShr+<c=j>(;l<#)TjH`N(iZ9fo3Hj;m;a}cFezRKuH6otT#d$jYM zynGa|fQ}!~dDjmFs_J}ta^6ci`*qi({Uhttfnn6)RLt(*_drOIA~Z&cNK75!^6VXf pqwGmJPIqXj)??K%WZP9XYvZW1!sA&=7WR0;@njXwO4`8o?>|?=t2+Py diff --git a/02_filter/drivers/include/ezs_counter.h b/02_filter/drivers/include/ezs_counter.h deleted file mode 100644 index c436692..0000000 --- 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 123b949..0000000 --- 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 c082748..0000000 --- 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 2b98e8d..0000000 --- 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 GIT binary patch literal 0 HcmV?d00001 literal 131072 zcmeFZd0<pUwm)9IB<XaPZbE>t2n_}VSxndj31gF`StQsJg2)m;A#NxPq=SxviJipU zwC(U_d$T=9W*o<H<~a;+1{>l)0!)J70>~f&Y6N6%(*a_@B!ndW`<$wKdr5*b?|uLL zHJa|Kb55N)=hUfFr>gGl^qPI<7{+$b$H$l(*WTJ&GCPs&V+4v9px3>RSr}_iuX*KE zVYNAmu}2GCafRjY6(ymNrN>8}!IW0$JP_~us>vTcIp(^rv#`3OOUE9q(q*hEG89&~ zq2h}!tY&^4EA%jC1P@8KgYEercE$A8o}H{Qqsd|1qu+7a+0b>>7oYL9!@z5YG*?Y; zvCx0{(pRorbDk^5011*!yH>=fA9ojxVwFS8&i$I{haD};RvaLJ``tUJ9q1Q>IM21h z>~h4HpD9Wf^rl_${VU^no70ZwWd&%oOQC;oF|h|VI-1_Jc_ca-fJT2AMR?P$A^nxU zj#0anD-LX<?m*P+&M;^`Oh3-+rd`YX`zx0Z@H;PQ+(V4zXB?L~aen%7=_~4Ci_(L_ z7ww0b_UZ>Xy&BWrA^oAtm{UcUg8b8KL^(gbhAdzxna-rcMG4zLSaJ_@v`I(D99nUp za2xamcW0y3l@pIXoU%sBIpoSc<jOIZzh`>oM>@vbx!0uJzbO5}E~Z^^W$zV@D7i7x z(bqRvftR$8<a!htoi!TME_2y&N8^kfb8(t<VC)L>j1`Br>Rc-hkv&}wGjtaA96)36 zv7>p+ibI+&OuGzHj=AhTQ`vvPa4;rhFztOn1BUfEH5R~}?P;d6DlHZ6G?o1v1=osX z_q?O&EzTRU(u(&t58mcZ-UWL1<OfW9&A<R&+z28do$V7$WeL2^`_hW!^fS)(b&hC~ z7L;=|QZDG<bl$KOXE@tO*2Ro0(m@*MQ-?IpdQIUrS3Wn%antwPyZnBsZETJ~!jR+} z>a@&x(8`TX<LXa!TSp}_SAMc9C)ovK=%t)@>vN7mdL|vhC=?}eJE7l_X&8qwhoqdN zGgchk5>tL=t4>;Rw7g~OoiiL{F2|v<4yq0|?aHr7uMz%MnH+<r)0-SEV{#5@>bY1) zr|;jYmG+k(hu_r%{Z3OkgwyVKG;2N?1NrmcmGYCl6a9WaWOL`9gpgA1!TKBzjKYMZ zE-hp=ql!VV%elt3&B#4iJS6?N)2C^59EG!$pE2$FL3wr}tL*c_`SKda7tSpnjj3$B z1{}6{wA&oUx>^2boL+66Ce5|tFJq2CCGTkJGB+9hp);}sIx$e6wR$P{U3cyYmllHf zTx7ERWL1*#8dK#B5+(nHluu$REsgm0E+>{SGPr63Z0d6U!76i3cwfd4aTQMlRHU{l zV?{-83V4X|hd&iPLymL?4r6-hbf@31*wLN*3y`>ng!xnM`%-SQ_gzqJgM(_NL(Ur5 zttO57fM=E$0>c&2KtAVwy_EmHD;;j;eTEqGxB*kvX~ug$B}wz&M;ET#_c>*<Yamgs zB+A@>w4M?p1oM*7xazCXCcVa60t!BVF?-Ff6^8npHd4}+(>DFU*33PtQFa%j(e+G} z8l_t2muA!(oek#cwMB8R-0KiQ%Dpbtx^k|U*Sv5M4Ize<(?%RlJzwWMXhvw{@e|<? z(IMY#N^{+2K$MrV^zN*9DNf2W)Mv$0ufHKM$hYNtNL1;oJkzh2{l-eP{YKMg!Zdsm zUWqrU+X-ABMGFM|YdL5(m92#%zG*R)t-!aZ3s9-nG_mC%{OdkI%4$qyS@?F%9EYaq z$Ln)sYUy4f*XK0y66PNQigc{@OY`&_o1^No`}(7u?FPpsSAOGeJ2lObrTnu{qaVrZ z$~`Ncl;#<nb@98I)xhetL?dNlyiO?070!j*rhl|iSEq|Etz}jW@&Qfh4Q4emhwRFg zT`L-;+*7-kaQ>&H6=z-4g=Eva@=v%6;$1ms|NKyWW<22$%x#AB8dF+*mYyX3^JDc{ zG!dA)Af?_G{}4!mxW@yy)OuUWV_~=_0=Tq#Tk7LsxF-X+jCxzz6JfY@0o<H=TgH=N zxTgZRMfJ8h>jciW=qVKb{Inu)fMgZqw5@uYaO=C{)|t|1uGXZzr(iHvs+!N#+t#h; ztUb)YYW}PdBsD>jSIf}0-u4U=RMGISKl_Oa<RMhsh^m5UHJs30@k<UNxE~O-pr%U4 z+&}9%3Gj&6sXStf^-rqD`Z`Bn-3EFWlTO!uX{c>5$JR=R60D4sT;1CNgh#UjzR`SD zIwYM=C?T-$^yVuZf^G@&=OE2d4v9r?JG%tU5`sw0mwykKR;n|VccS1*pyX+1+jc#^ z;JCF7hS=KD_cnl5I&{@DPqg>25*?%U1xsrs`iem?)68T{&m5Ploh*@+`WEA}Xo$K_ zn09R=0BF$=w9^kb8eK822lddb_M9R1=pNEGfs0i7AqljzLuwK_6;hs+R<m>Gm7V|7 zSXSe>iQbJV-&8x%Ove;oDy8{R)j5!OEesDGo{zbTe?N@`IcgIUC~$pd0A|9WsA ziMBWo!MJgpZ-D5x(Anj8SZU(jWQZ_DbEQwEb_`VMd*D=3pVNRZEU?mw3s?8ha1~yb z>ZEpbwWo{M3Y~5KqCM`M2C$Iyss4O}VB~nmd2n2a7>G~K#*}(}YJ)kE!V?CC)xeFS zlBtBUycDYj@b-j6CNDtwJtY%#?;|{KA1@6_MMRd0QuTXD7wP#_gVgMbL;4#WVGz>@ z@9co6^-?nxy9zHC&b&LxF`%&2Us2*PyL7HR{cp%Wq<-WcF0chp7qM#;X{*v-pr;|J zU<Ew7|2O;V``x0X?u?6>kl>%vDc&La6@7Z&?@(8;fWCR9jb=nM<iO5`7-w5dQJy=; zEM=!6^2NLVtK%ljm7S`Gt1_4caD)8PH-5iqS2>}|YKjI)pYG8DEApaR<YP5gOuIC2 zyynt_#F^HWw3<B{6tDPxqb|&WeEmV`lf}}9dC~!AW3sb7+LH#$7R9^uKQ^N<vI8Hm zL>{+19RC>iLE$zu#W4VvrJSanZM=vnfKiJl3zE=3L861PM#oG}qKqSsw+<UeAk}en z`lE}YTXLE-4hy6?qE+49^v(ec^Ht};<UpQCc#ZG#ZTY*ogM1|&=4tq3%JWz1T`{%i zc?>!rol3w0QNn$r^a$iAF}>3y9hOdU$1%NAgL2MUs=|4wn$rLUQeb8zpl9)A#+;WH zVK8Dyp|+fWLVP4<B9|!bLTF{Cvek&1DEp~Al9x4@X{NHT$$~Mi&B$aMC5Ma+#g+?F zeSJ<7+1E?CI`Rq^a9<1KtY{JewDdgL9>I)@9eV^qdSFBU&W@|XFr>rf@|vP~(thW; zCh27B=Wk-Ezl28HY2H=ShkJfBQn?Gmk6|*$$%#B&x&VM?l53+L!TM_mCAx!Xv9-w6 zojFZ<r$5G2hFHu1#GshUSJ2=EL<|J@Bc(^+EhQuwIFn@F)%b=!rCZKcl#uo=*kE@P zKCpJT$!;WFyRTzYv<DCd!1DyyfXW_Ni~vs(pol2&M}VaOU<_O_l$X$;O8F4fH&Dd2 z?G#t4>BHLxJ#TYuxlsCE24qrwXJ==lX;%%bG|ZJR*S722%gtRX&Us$9v%|E@SqeA3 zQo5y~?|0$(3C@F)xtsC%r0C(e#8)?3s+8r77A6Uc*J=2@)Qmowq&8`a1%lK^&A}(z zL8VkG!I1KaHcaEFY*a~cwTr@S;Qu82z*IgE(mS^_jKBtPOTz$Dc`WL?p+^a~TRy^u zw}qT-%h_a3@8y*SKirMhwW4@5vlVVLl^+EH4a-EsA=L1104dWRTK3^uqF~-Y9j^q^ zH9#!h@X=#Z6P8efSz1M{G`RVVq&7U^D%LS9JD7=FYf<Yeyy_i;AyWAB{FDdnJgM2) zNMYP{pWdYlxXeeTAHe`6QX8Lug*4xqsY0<EGF6lm83NhGO!Ie(jD<7V22*)C8r9`A zv+7m6a19Ij{|v{l2|sF*zOHT4Ilqkg_?%%;RI_x7hb=zLv27%6lk=RebU!U@SFnIN zZ?19dGwsT4-g6YuM>>RXnR9LDu`8I;@zQ(|y0UG7nJz!rj<Hcw9xO1X@`o@wt|=K9 z&hi#y*QiM!@kmtq5v2qODs5NycGA+-+$imr+Dgxn)>3|hbQs>^%4xXbf$bT_OXMTh zm3+XAe1NZ7y`&jvwX@TCD2<vTnfZ%yKEm^v_>g?2`>Ll(&iz@ecP&w4AiB1&K58=e z$f8Btn^;5FZc2Gd-q)0RN2Bl?0u>EHM#S@`Z3II;(iF?{ky=M%eH7C*bg`UxI69Sn zWkX4yO1X*rdNY=&cQ|{Bo4*e(1QcXx5!2qFwLjl8nG8dRDAjOB2A7deU)c>8#d%93 za*)%WDJWk-1q+%{x>k0^RQ3fRoLV%#1-)t4q0)<(9>@v}v0r27ftd%tmJ(?D!<(yP zy(cK0{3Ir-XBl-L!nPh_ELX(fGObW6Bv1MGiM+k+xNuYKv&y#svR!Pmq<%xt-)~az zVfy3I<l0Ngq&_VvWSI9ux^8L>x|vWfjToOM<$15^O0PXMgBRC+X%w1yhr=7UiT2&} zsKoZ|7K-4EL>AUUw3J$F{liSJx27N(+^oHU;xTjVk=lzXNDphznWbxSITvC-mR87E zJg_Ci?$BAooX0g>NujUT3@NY<aDOwqb4Y0<G?dpEkk{Z#kAw%Aq`aq*{9s#X{NSmp z)is3-xSb5=;x?38)9YhDk@A~NWiqzCyidQTsn2P$D~ZA<q_fWCyx8Qn4RaUVP0{7F z#KDF2R;(~}R!xfM3~XL!8>Z|B49LVQjoA0jybQSGiYvdteP5D?Ds`E9jdYmL8`G{7 zq8mhX*90AM;o4~FaGf;@6UiFQ8a#vu%*!BsSAg%VxVlV(t}ZiHgI-)K8l3x$&I3s_ zzvvhYXL+X`E!6)KP02jtHtCa+d2zoinHT?F$-IOa(@)oBCTZ$2`$DW_eD}k5e}7%( z0Ds-AIGj^7!8urw5qbR=V{;p%+$QL%ao;z%E=x1mon<Jj$KGG#&P%DoR<JHB3V+e~ zi&6F^b!1P?^rMaz_bhE)R!X${0Z<ME#UT6*W_7bP_|xjZG`Y?S4%R459h9!K#^BF@ zzgXam_>03|ytdBT2e2gk^~E7$6Suyuuzps5IP|eGwbPH(TN6m&O<L*57@W9BE1EXp zz_6*%Ig>&X+sE^RqxCuO!?%$}9K<J<AeW;_to!bl7!Y+@y?dUeE>nX)J!}#M+eYI% zh80Sg+U<~y71n1a@y}%bN&ROU_~8jKgZwa{8HVfwXuRhjP9EzrQ)bm=4%7fU1P4U* znM1iBE8{=VS*w|O1Z0jY?%8S1t~)9-Q{5|d?#w$jMeV(VBz-4=<VPMQ?Vo<b<Xl8c zgQLlXJPI4974KuNxS#36&0)r8To<~qnvgi|_uq?2+@6T@l{#jInN2V=ObL~&(QubW z(>u9mYtJD&XfjLom_lhz!sZx^dLML(0~4vO{J7~AH>`%VHT{g_IK+>lPatVSVI(of z_)7c1LCQacW%szSqbv8+j1?zL@8lepaxWCc*XLXSKaGc3VW-dCKVe{B7t^P1wx(a9 z^q{s7xtIIFes!}GW9w#{Slw*1rfxO{dUjGwVf}19gG#fbNu}8aD=a_Th)-#DJW74R zFaMyFoGLBnfzLpbf&w5N-^eGilX2xA+)aaC@<Kl*9WClB<b%-SocAcsm^FvpnHs4U zb7jnp>AB=E@bXMeU&u-PKP9Wxewk8OTE~(hYGa{f*ShjANOSac)<le`HJ+K>&l~-2 zJB<LWE<Iy_qb3s%X`UVymJ6kgTIqX+LTO$+s*UgtxDzyl69JZpW~pS!Q5c3~ZvTD| znTEE0`iirr@BcR?Q@Lkx_UulctI2=Aj#=Dx^sb3>&oQF07InT|SLQqJPu%tdOdRH3 z!2N+jRKg1oNDtT3vKP<>Ltxs~FB&@!XHDPA{wT+wT)7z61pN%Wq(vzfr8-;GusU0` zw$2u#uUxD%y_4TmXEOpEhrf6zu-LFCj?*OoK=h_yyrR%nN&a2hZU&9xvb5io+fX>B z*?DOgTK2~=tF#~`{k=Nd(9}Ac9^ne^uo!3Cb+&$Nn>KzT+B@6Lj&Dr63Zhy+P4`zW z(5JuWylLLr2kU^qPe1*9OY5i7M^gKkrpm?ru+!q(#6IXx*(PeDD5;WhvxSUHTnp4* zNtPUq-l0gsl=G&K7U!9E4RUWVR;HMCE!9*mfhm@1E0@3yOLcs-4FKw@$ANDk9>-yn zDifV`I02c+^)v0dZ4wHVOK>A|+hktqgVGdUN<wKWFZD%Nl}m8-MIH4M9bpg_>eA2D zTT{qm%l(!10T=?#%{~Mr&dq)sN}QX0C`!bw-fE!+mG)s<`=y^rKTi4IWV#g7T$|qR zxYl~6a!D-Tdq^$8^PI(|ccxHGp<A-T(k?$Uy>t>xOz*U~lZ)L$e&W7Q@4WFH1YqX2 zkF2w%noZyTjGVGoQ#og(+ditirB1ujy;KjUve#v57uIF!Ru;X0r6>J8UzT*F_NLx> zGxh~sD5g~|^-D*b=S@_%Q+=L>xD0YHjX^^*8ty=x#bm(hkr^HB+@CQ0>!K+wwU~tM z%jz<3I_ok!u)=j_)n#_s9j~jr>N5TLTX#4Q-0gdN8-4y1{xIgio@p?M^r?I&ri^ro z-w4t=DAcI_2yv5i**zDk?4>NO(pb4v1E=$j1Ik&ebsmUzera;PXRY<=edogS2WR7C zo_$F<7sk_$YbKIWhSkMX;YAX#om|Yd;)2U@!C7N+HZ+y`ZbJ{w^EKE=?@ukgauhY> z6K?01w^8A&`#CEz6`X2I{kV5NO0yh?(`7mt1kQ#wDMwb4UAO-4(;zGo4@6$*8C+Kp z!aXygvY7w4tfPE_=N&nKQr^+%A%}JDk43vsJa^YCuAC;2NLx<1wlqqaxC2CDPIU3p zz({l0*_Q0U#-g$Hv}?<$N;|IBE=WzKmzF~no?k#tvA);Y#%XpJLB=}Uc($E3taY}@ zU)R~DG)V=ig_3Q;cG|v5TSw#YdnYGbqDKsqZ0N@zEw=8l(YV>>ONcEGA=E5Gq_VB@ zoACLt-&Ak2H~fiMF4x!FHaO5;o{KH0bV`|riapvKEv8*j_kmNT4u$zt$igg+%H<_Y z<fsKG;Skyi7L{2#x-UWMNGpb&5PET_^fx4riXFB!U|FtQlwyURGq+=096s#$v1#J@ zn~1kq3LW17s;tt|$Ib)eaJ62aiJ;!lRi8PUW@pi4=~UqUxzet!wCgZKAvnUgq28(| z8knMR`r(aVx@TdRQ{!HKz)+{t?0FKBA>E3vyiZGMac%?T$B}23a)>V9OUqnNQ^<JW z9@3THw43MonW=QWk~x~roifLPZqEkrla0Jl!`PfA9nf?jmEXh<q;eX`8ZRS`E7l+b z$$#)s<P;|ugnulEm%kr^3(L2ijTs0oxPph@QX@x*iI<|0X;(CXr68F1buUozJ=p2- zqkPk^dt6w_xnF^z@@r5aU@>3ZHfN1_CSzt+G_7=6X7<gu;P-RjUIsC<pcfzFqY&Dy zH~uD#JP{iQb+|vg<oB0+r^{6K4GxFoZC;p@&q(AxWj_GOIg_D<-&9skmHnn_JB`)3 zrrkRrxzfc^?hh2#uy_oFvy`22e2vkq&IIl5zk(3sj6W@wZ94kb_eNh$Ber`lh!s2b z<fm`}CmsHH#;j(CO2Q1V5qpTF$~n=sHw=|?V%&3(_{DW0e+CLmw3TGRDS?s`o63%I z*Tdbr^oj3#TrTOu+Af@p)0er@P<tb#(yo!3$!q86TnThX7)CKi&q<;{LfsiE?a_4_ z%3qu{$x4ckG#>)bg21y7=4T<rpA`ea`4Z%;HB7&@<v!<4&A|7ZU*h5zdw>qCpq+Kr zu0EA>{H_E_x$)pb`5KDf2t9L<U}>UZO=!aHfEH2M9f+NS??tJ-PNS)&An!RsrpGn| zvAqy}f@Fk}?pi)RYIJ?pP^ZyiAJPXxYNP{|voz^7A+n+z)5YylmtBjER(5SH!v|8J z>{{eN*|qVkGP^dRa(QhczD?-F*=BZp?7Ui%erC)kIKaD6+h(YohrFdSGb+8N+`ly? zkU!vo7sT05r?)w-Nk_0!FOA{rNcBqcgyZB1MKQGV6x&Tn*{5{#3!GunNYfqb4Rhrj zEq$k8sL&yX9$Oe|6x=RsTLr^Gerp_DF@8)FR<!gQ=avg>>u_mH15P`G@}&jjb8Tth zA{H3wq?cz@6ftlrZ&p*T(Rl1gomJ2L6O+`5jLVfk2b45?l?ZaCSaG+;PxJWon$#S; zep!M{9Y>%0_#sz&qjUhredkSpIFFcd)_m%Un3?K~{sab6`!k?FZo3&#G{HB=IS*!t zgMGShk6%Ti<<JE)&Ph4Kd-5VSVLWdJ4@(@PVlo2D|EqxfT%f$A=s8yc$srC7rhkZy z(5A<vragSI-fA%IrJcNKFD=#6k2q{_fJT=MQMkcnP38Z`m)A(zqVG^hq$v4|5LIu3 z;Lv3oL{@cKdV%s-XPtSv<HF{j(jq|%3Mt-3p*qKaB_lxm8O6`hI2ZChjhq9B-|G|E z1?|80_cCZ#{4eOIgSJi=<b6j-S?!bh&$8!RERdzQf7yB2i)iuH^vzsi&tfcd2|>iE z_uK`G<`0jGwU~!2XUj^mGiR^V#AWX=>X((qQALN3`4)55@s)X*E0?`^-!XgE+%&_= zIdik)XB{=_3@c}4FJy+5`E#>1hL!e(i<0i!RFV{@kAq$2FSsw8iLwUeSu81@;6^Pf znQBFcN)}5>(8v4zFu9;pYSapZi2}#lfmE$hOYrBk$R7o*QlpkCsh07UAmuGlrIwI} z(_%>yv`URys-!y65~RE(s?-t^aawqUpjB#$j+|64TB^dM8mcFb$<R`jAc}?R86{e( z!lN3hXLOjJ(Y&Qf8Xc}Ds-b#fDxpu%a%p3DOI6R9a6M5C)e~m{A$l5kOVuQXa6M5C z)f2ZdA$rD!=@}cYC#s=(;<OqqRZAPg^fZR+iE5~xabbGKh3Od=t|zLYdg5LnM9=sz zJ>$dmL^V`ToSB8_nGmLDLb#r&hU%FZre|W9o{8alq8h3v&PmXxI-aI5Jx$?yq8h5F zIZRJ;n4acvJy8wS6K5VFdiDv^vro95sD|o^!#=cB$1^ER&!liYQ4Q4-M@S)h_6^gs zZ@8YQhU$r<MYL2SL~@v($>DmU8mcEwk3#h97p7;wa6M5C)e{GqA$s-?)3blLo~VZE zIUr2W0bzO$2-g$UP(4$^^h^oUGbLP4R73R~7^dgIFg*u`>xpWpo`b^l92BPKpm04= z4b^jSn4W{f^c)<nC#s=(4hhq9NSK~O!u3QoR8OpYA>(;ln4Y(V>xpWpo<qa*92%zQ z&~QCb4b^j4n4ZJJ^c)thC#pivWhM5kyhWNg_O{Wmtkg`EEG)PA7JOt|mX+k?%){br zc$+WIRLROr%b90c_TtFA^pz|5Qj8#`VacYIIrGvq8;n}QzmDZOFMok%*^8s{CI-p0 zK{9;^nNdr0lY(@*Ae|wUPDgZ;gLL{JojH_FPjpj)bWuS%ODJ6w(M=7~MF;7up>)wi zcXyC3CP-HjN*A;2#XIt*1?dbd*(}V0MIn^XK!nqSgs~xnp$0U@5@C8;z|h7J!Y~sW zIbnK$FfN2J%!YBCaAJTkK7=sLi1D0oQh+cagfPsC37l|pfG{zHFwBgJoN!8j&=f)# zW=GSq7suqKPYn>7S#pxFBlopXOPV?9-2u`*p`=<CO4^5$P79DGg_7#SNRv3}^Z;q! zP*Ot}X<s6p7#yMGP*QUkX)-4bj#0l*QcD<VKTaAPrT(F$)-clkoHRI2142nl!bk^j z(%?v?gp!7PXbL9{j@7_0(l8$#$Vr2vH7JZU%u5Gx(%@(f4kHco)4`lHI9fx(NW(mJ z2qz7W)@@;=mQWwKjYua2M{8&psWp^zC?^e$*03<rl2FoNhLu?h^ZI1Q7@w|8U|KjS z{?R6lX=ZEM;@jdi2EaA(Nc<UV1-dOhP*32yxoa<BF&21wOULg=PRaji8OQLQApkXg z|2}%2n~L9gmYH+MPM}Q^ZIG6|c<18TvjQ%QSc@2(p3Pq8g^6lm5*3!cn0fo$ydbd# z+c5j&v@ET06$1T>;}<T<0wb~EibE_X?NW^WW@|RE4a}?^L3(Xu8<{rxS@6o%-<O#k zpx5b=V^`)an#Eo>nv%y*Q)XC{YhNiCtYWK}2CdhyHTWK(WzVwL3A^mYNxApu2bh@p zhA<fz!o*;V8o|tgMzi&{?5x1v5OF!!^*GTgGvAihXRtA4wx(IvtYiAwnpRz_j%h|% z*`0dood~eWjGAv>6zCoc%V@5{hJu2E3HBxFld>1)&06)`DjM37Rj)<=a22e$T~8_w z59!BjOqi{CM)!=)U>H#nWIii8>;Bwy)u2(>wbI_TmoBoDE)4&oi#A=Gju}RngI#1& z7Zba6Vbp$0AOA{?Hf@_0eHem$Sfj`iV$FvI$!F3h!Dp5mQ<s%aqOy+6WWh%!ePq!` z4t?0@V>W%vp^v%rG0$SYpF8ie($u?j<iX^T<b@jh!Uxg}_(-RZiS#iEE9L?tWmKw) z@uuJjKwh6%WAyE9LsOn*$%DkW8RJ&HmhhahgjlWKV2oY$`l{qUE3@b3u`L7=h~#_4 z*x45@OyexH3@lt!)sRzeAktN@#s7GfvE*6JDgtef*}&-gbs|b0yfSZLp2qbUr+$&( ztBO}`SVhg2y?8&#o7qiXqn3^=zFpw-o&u+Hfz$sTfz$tQ0;ekiXLT1C=PmzA;E6p2 zp2!8B`0ofj@&6|9L`C52?gH!owZM~l3OtDmJn7#Nc+&q(V9XpOxk=G_dKwtz$y7!> zq4E^9Y@YkZ%GvfDu2aISEc@KFw6v)d!RM!?vDY=p^M8p_I(u#8bIb42siB_|cB7V6 zgn%eJ*St2W8&!5MR7PDd%=F>Rki+-JtS42k%naeokm&cutS42k%*^4;up8)&Sx>57 znOVY_Vaw1Pvz}DFGP8y=!@i<7W<9BTWmXc-?C#!~^`ru`?t`9>%||#lY*93?-O=4Q zdL!$dT{l<5My6MGJ;{1!*UgQv-RYHGPqN<Gb#tWj^xoO^B<r1BH&;rZ*gLzPWWBSq zgbzjfq~6)}B<r1>wHv$1y|e2{);qhBZtSM?&aNjJ*p2SyQ2Bhb){Ws*FdWm3FuQlc zTd>5rdw8I``xY#FA-n}kMB#9j({91C7s6Yx#0hpd%jvgZ*$d$<SmF>hj3qXmz1y-E z!dtMkbZ1F(rMKbfh42<Et=(DDeCds4FNC*XS<;;)&6(a<_Ck0Imfa)bM4C6fvFwHL zRxG=PyNNV+dS%&@@K!9lg}jNknmw#1;jLJ93wsl9HGA+XQ@FR?z4BHpyM?}qx0*e8 z+9RChv|F;Ybfdi0>|s3#ZzZKQoFxtcZZSMP32()+q#Mgy%^ud1(5OQ)M_JuO%Ic^v zNi9rP3scm>RJCxoT9~F5rmF?)w*{X}wUDJ2u;Uk~9JOFWAucv9HZ6VPq{&mJ-aT#l z>W3d$v$l|JT>I$b>z}raTyu{l?U|8j)1EOh+j_^-YXGr4vcWNW(-<S$xcaG;n;!q( z+L@eU9Y_eW_USb<N3L6wn`vZ=9$Rb4T>r>pn=JN?>z`QrND<>TmX>}O{-2nZb~nqO zo0|)sY-L{VO13gPckW7-mzz2F{ya<3>W9~@wX9yVW@C_l=KWc7@^C;#7s+{ai@Y!| z+hSj|(86p;k?A9k*&g5c)aKP2*IG8Oe)93BAGH*t-}M_UBR3e?Ec@InYO;vs6|LS_ zMA(h%pL+Q5^_wP5G_t(M97Su^Z+_ZRxNh~MmXS~=Z<1x>+D(q9)`l{%XXV-%7X-K7 zENw!%Mg7OHZ$+7{#P*L7*Ogp{m5(?!t|UDaQ<9<Z54rk1mWLgiX2POt))p5&&DEUv z%suGr={4&&u6%qAhfIEk(2qZ|HU#j<y49ODDOh4=pF4NSq`T;IvgProA1}JcvUc4g z8)uG8oA``{K8R+)`XbBPr`J0kea!OI+NaiUeAZG3v(U~$n0gb4LTdL|U?_W-{RMIM ztVOfJ!Kx1ky+RZZQyQHMg{BDuEPCwmO&0tgH1flaA{w-{jt#24fnJb5e?GTYuDutR zu;kjadIN`u6e15K-~(Y<U%Yl>;kxykhl4X7OXC0NcN5fd<U3-4hy@}Rh*%(Efrten z7Km6NVu6SSA{K~PAYy@t1tJ!RSRi77hy@}Rh*%(Efrten7Km6NVu6SSA{K~PAYy@t z1tJ!RSRi77hy@}Rh*%(Efrten7Km6NVu6SSA{K~PAYy@t1tJ!RSRi77hy@}Rh*%(E zfrten7Km6NVu6SSA{K~PAYy@t1tJ!RSRi77hy@}Rh*%(Efrten7Km6NVu6SSA{K~P zAYy@t1tJ!RSRi77hy@}Rh*%(Efrten7Km6NVu6SSA{K~PAYy@t1tJ!RSRi77hy@}R zh*%(Efrten7Km6NVu6SSA{K~PAYy@t1tJ!RSRi77hy@}Rh*%(Efrten7Km6NVu6SS zA{K~PAYy@t1tJ!RSRi77hy@}Rh*%(Efrten7Km6NVu6SSA{K~PAYy@t1tJ!RSRi77 zhy@}Rh*%(Efrten7Km6NVu6SSA{K~PAYy@t1tJ!RSRi77hy@}Rh*%(Efrten7Km6N zVu6SSA{K~PAYy@t1tJ!RSRi77hy@}Rh*%(Ef&af-AYb~*{y_ADt_8;O_lnFeoBov= zmn~YVud*3BuD!J~=Ak7k4k$E37rPe3gK9vK%4IXWa>`{hN_8FAUN0EdD|t%q<b}Tt zq0bviM5kN@(XJTh0j+Dmuw|m#5QNPjaU6P!8MX{!O}#y8>g_AE2d3(xruM~m;Yh!q zvBKK(=EB%hg|$BO)WR822d0jVnmV{Uc4}ek$U^A=5gnLX=r<jh8W%M+j(8RNV|p?w zEU!5r-8ermyoY1*xtl7JUa$>8?9W<n9!NjldaWDh^y5=qE3_o=RM%~Vt=Cj$sSDQ@ zKfdYl^-tepNuMxr^4*qHOKSG&qP6!}CZ?sQ-IX>O|69_h-!o~_JyX&wsVw+!u!jC) z8phJK!?l1v!`MWfRmXJfS;i*mZ`T9%J;o+SrADFj9Ai_WM@FOcJY!R13Sx%Fuq}+; zZ5U+$Y%62aV(*Ma=>^878%G;aDq$=wZcH3XrHqY_Ul~6vp1sJ}%!IKCfH@g6BpMQ5 zNJN>%nwW{c8T+pJ0dpTSGh5l_J`eU8(1-Q0vb9M$Nl{5G$;vkNUD!9NFY9Y%Mahej zlapDpl|9?<p?(AVv3^$O=%3%eUw_u$${rsucR=g_Ho(f(r`(@nN?|Ehwqc-spm`u0 zXl2U=JvV6ZAnI+!;4Oo18%(8yAqhi_L#Pz|w|eNTp_-v=sFiIRmN%^LFgDD})>yJF zdJD5yS>bTo@aW-exRpIRV)lrb5p0B&J$Cz?+YPs~+pX-0)Oo4KRF-OGPma8AWZXzL z(#qD2nm;Oj6dPq_Gw!(O4$;pYqeqMurB!3LjtTZHO3TMSKX%AiDt~X>(s6^vv2j-R z%=jhaQ^vFLR`$q*tO>daY=V^)-?jLz{&%svtnA^m%rtEpOS7`4(-)*Crn7V_dun3t z#Ds}#qLq!Clrc$go-p}4lSS#SDfdnhrQqkCci(w;uqH~D>EgdI_zbp)6|lzu%V7Cz zC3_sDnQSpz#hyUvJM2NWnmviqy=)14n5{#}${u2mu%}R(#g?))>}ixT*)q14tw$+~ zEoX&n14`L!1$&fz7p30*&Axj!+sv4Su{qP`5CKYar_W_&R2n~T{5*o;-+hzsW1Bd3 z{*?IyurQW8HJ24pY3zcr3kZgP_ov^_92{$(XeWS$u?HqSz>0ZkVcJ3kmNy|!DbZKA zf6Es?zgPj4vzM5}T&PvBN>;^QW(<*Wp=+_eaVd{hRJ<&Tb}CodqOUAf;wRM+Sg$Je zDx3b|2H-D#m$&5A3!>~9#q1s<v&*0OrAChyl{i!mQzagSqf|&hp&kX^c>a9Po2w;T zm#-gh_9uUKc4|pkjUzg}hA3RNt~tP#*EkwH8m6=f#?>kWQ_dy`a;YGD5Qg=jQiNSv z4T5m207^K1`OtxvkJ4I^_m@QIlYZs{vtW!$s-di=$OL`UF4#Rfy<I-jB{dRU9|G3` zen5e10Ur$d45K5KYx@SY7479;1QmxxtBnld6$(Pn@|vRl{$e9!nq&7DclnF;FrxFI z!8gH|;IS~k^zu^xU?dE%iJ`pa1sSUsnk9I~3-khk?vnN&YdF@RIeM(Yj!wqfI<m8) z(gev^A_>@Dh#(JZ{}&?M<xOC!4BoD9mEo{Jf13=yBN9ah=fMsPeEOL@lGIgTaBpps ze|&@RwhpNPcIj{xbjf3G6b<wj$3tDkHXUS*ebB`iYMuq6ZzIeDyO4R}L(Ov+p?Poa ztsU}PZJ~Yss13M0yC+SNrOj2)?%sM`E&$w+$Bp0A={y)6FrBY|mCX;2AVE$7L&IXl zu=tDdf3*A{fhui&xbi0fRhxc!6RAS_8KIkJo!*{aW0$L2rH?@@*{(|kE!S1(Z&hfM zRM70QU3V3<xVJXRCtEj-a@m?(1<fSg=dF^hO)6*?W+L0Y4+t5~X9>3Xb!%~wO3@_0 zrBDbiqSy4A^fP3WXIf1!Kksk<FOt~9G#~UY((lmtv}rY{u@CxJ9Hc3NDT}FyDVsvN zkHn0Xk3-KQt<MBEh7HJ@XV{{P8v=@7au-BP1#R-rJ0x2RX11+^KKLYx$%t_bh8a8> z%%IYnFhq6C={yP@@&WQy@1r^xI%A|Gk@qSZdhgRgq4FA2*(8ol+c=ttrf(k32PNvL zAMVr`oCZ3ZoSlshy;_~Cpe-v4viOVfe~Y}IdV~?E`7=c^^tHrMjK&B#(H=eYgp@!z z44&1fT=GSGX3;k&;AQQ;SuR^UO*RRk>bmsl$8xGE?Sf>(h&9iQWt$E7#?<r0(szqr zXS>85=C{-<S`rI<mDg<XcpuhMM-E3n7{g!O=r6ub=6$dO{^zxE+&WXaTZ1$c;zyH@ z&An-tueO5|{H&W=J_1X&CStk9u?b^6l9gaC%!CoiG;{EAUCg?s^fNz9uW@fZC-3?O zjq>1=<P7KJQc)!-@*#!MH%3U-OUvhjq<0dj_Z$<-jJsu%xxpr_u!hn5C*I_lqF8FV z#8mz(rjCN)Uyj04$|&^I>Vn*Goou~TmTz3o&c+NkDKq?{t3W0-i-0%$%MrUqF)3`s zUiR+b60dPggGGdS2L;TVUNhEqosV@AhQi=W3LDifa5MP6OPX$SBw?uKEjKvvZ(xdO z-x5OPIVONF#<1JanniSkci{gf8l9(kquZ&`BaTGHaWaX_msox2(>zZMCQ~uSMbD?6 z4{MnkxrT7Hf-cq4W|x0Sp^%3zQ@OK)7CH@Px4!+luQL$+Jbph#fCOmeDFOFGt!U#} zgVLL=Sixxpj0>*apL&>u$j7SWKMRmQOXS4g<XMH*PoOG@gRKvH-a;NhydUPxx^<l! z;5ELtuE7UW*?^v9gC5L9YYHYp^29*%D=k74M~LLuA5!yJB9{;8(4M3`2+EB7qFB!t zI=j4+pnp&#tZ5-TsC}4~KHlO`(x8g^=w_WjACxz(A#Q5>K1%y10`2F0n~aodrK&Po zKnb(PdKw^OB0=9)WE{e|y{Xg^g~X_lW=z!h;3m?F&qwzX%~d`Ehrjt2`IEumb!~|J z!<F`L1=?3pdklB4Htt9IQ+twR6(}>>A^(?<e?chMbcO4p0N2Ui#&sB&C8}JF#Puz3 zJqNCB8uayzqIopurdr;r^wC7YgKK^i(c_jQHyVAsMcmZ(vy}Eb0`0d^`&(%~2JN4q z_M~|sD7oh6A>$$iD*T^wQ~R(heasK^G49)BoCwy@#BH^radH?p^vuV)>zb<Z=hwbP z;|y@~FmSuBaI53(RM|Et+;#-GZTmKEHqxKCsqMe3wBHbDZ>RRRvLCg-liHL0MuC#s z?*i<XOwi2=w-LlmiD3ww)t@M_acQdpM6g3jSG`k#XR7e(pDK{F0OUuSyy_=E&8sc~ zhLV;3z*NsvDzTg_xEr&rTfbog4l%GhT)h!H_Qy9p$+EJ?FI-RCPPSle(dP9VX;+Hu z%6ae#Md>T^=gaG^A^Y%DFv=1sayI?SF2`NQ$^kRkJ!MdeAY-9aG~yFh3ToI)%XcuV z6ZxTlQC{dlOmY`A<srjx*{=Lq|8axh@<}7sU_h+s8v6XdF{=t?ru%<nHZz2ozxWC{ zDc5^aGwDs1cu|22CrBXY?2yMbBhd`dpZb~xpORDk3|rU6=rq2;Bzpi7Fa+`{e{qL= z$Om)m&;*zrlE3&`vK^W~pG;im)5%w^%b#6G9BZi_p^SMy9zdcX3&r7+G`ZwGATgEw zStIYeUTJ&3%JzOng{l148nl1=y8K_FeZ12CAACBh+TAIny^>Z_X*=TWU?gXi?MT{% zfTUs+56QQYs2pXrSH~#KD#0uoS)UhKR6&z;`q=qn=QST6J70R>S4nx*I)&<CqVoQf zRo4T^6ksj^$zf=FB(_2O<&{2nVO`NIz9RVjlpnUqGkglc57W=Ur#^sB9g@F)3DS_z zmla5L`zbL&zJZ?_s@s&>KWQrZhWdt#*DzDrQa}I76JPWF<F^3#m>*hMp*~k`hV6>! z#Wsu{cTwM5%nrq*8cN&WN7`=Sv!Kp59@Vr9Xt4Qq0payIf}A$->eOkv%B@s~#CS(_ ziy~QWNRV(IJS|_mD%noE3iPgFd_USXvxF%-1KQ`HDRTU-nR-^7SbY&JDAzI)3+!9F z+x?`{#U*l7(aP}zSi{;ai|wx22G>fXd+SO0Yp=WTbdjB`4Xl5&(Z8AIJemE3e9#N# z1Q+ze_@BY}r{yG|xbZvP1sqa+RO#^<^k}F)qST&1O^t(aexZYYrj8XSR97oH*qRZ~ z{-iXRjtU5&<tC(=(eQgy_0JUCZNT{ws=udH6RF*1rJ_NFpU+UVeGtHCSf}x81z4R0 z2-)j&05U;=911`v&fW>A9&|fZD7K(KKt1Dfb~f#OxC+V0YU8yuyo9<NaZ>L~0xY#t zh22gtf=~jcY;3Vv6B1H}=Q-PDmpdC32!&h%G^zmS!FJCMP+7r$Gx4gl-Sq5K0N?ym z*~L?o<>xm@oo~`=Vp62P-oz*B&5SO}e)ze@1G0M1MV+a<XMuM#->1-?{KP-8Y1yUp z@*SYyZ`637p2?$R;5-U$1mObB{tL~5gq^5Ww|pYZ_#_00_fOcRr`aL2hd~n+Haie+ zDNfFxPt&;5yO}|@DjTf$XWhrx=awEAp@Fw`$v+1n0!273Rp5To8*Y@qeXlp%Xo0g4 z4xM4zcj7BUzwt$qqQhIG;XQSvUD!R8wR%a6OwpuofL$muOCVbi9EFUb$ZUc9v{z(~ zK)%~6(k76<>J>RhAb;K~a-Kl0?G-s+AXoK@Tp*BHy&~-bIjUFWLV=9!6}d<t8xgR3 zT4=FAek72z7F5|nEx1JBQ;@D;Yt<9KT;SU-0FRa!PRxdm41?*#ySw;+`lfpfw4#A2 zjpZaQcd6ObUl<}oASMtZl+nf-nlTf#*fn>_W<>|j3{huPS3DaBj3l5q6$@18&<quv zIYv<cx`yK+I<{$10q25%4p(uPyP!jU?E<pH42>hM%GQ!vQfd3f`y=fC^%+`6KMp}q zRALI@p5Zv1<2DtSKm|HU4ifnmQG0z)nh-|5G@^;>Mq>@<6Av16A4Qh^rpopWuozM@ zfQSHCBWS_?`S~K8&{6CFKqQ7F6z#raDD&p@I9D#h38O)*|3qBbP<giU=4k&u9h3ih zo(>@&IPWgJUaa-$ydQQ|%Su$~hk3}izC9vJfh;0Q>A{Xp8nqD`K59z=j`lQZ?4DEs zSS<iLyJwUD*g1d#(`W&>g8;<hPEjAg2{wSmH~|<c0AMje01`OB1QuxmaN(Z{i;1Fs zg6bX_EG7%U84kd%*)vrD4s!smFFex(V7toV9#Q`fPVg95WC*}dIbao7d`AFY;sE4@ z9;*Np5P(kv1UmY@>HTej^B|5Pv1A;RD=WT1_(L&OQ(1AnvkKK<_*Fuz0W9=VMO!zl z5@au3<k*%@x>j*jv~)(%(mR}>Rp7||XNOO_<29^ME->L}EulU6)S#`?YPHK>V}9%D z_=S_`z~PHf2$6iq0ZN-FB6&9yLL`3(ZNo`^Mi8}=;;*oZS2TA9`dG^WUqi9x&WwCh z`Td%zimy8}-ZGWvXlR+{mg&9>#6xyO2wHLFKgDNf-&)Hdp`G8j(5-Ws1C-7+rt;&A zcaG8_#wDag<NzmX5+Wnzmv?f&RRN%gvYi92K!>KzjAX~?s*0<f89s-_0}J&k|9nUl z?ORLqn96BHk8iZQLW5<YJ!Y@%l6kxFydS?~B=5)XxQ(xtFh+MXeT9fD%+ww8TVRmU zv{%{MGqk4iH=~>f8$JH+y(;VKtHh>9AIj=jN=Wys?VWk@?=SG<WO1lWpUVF{+iFyp z+vUaa&VwlkJc-r&5KYK__2k`x$6Ac2frO)r!9e(|INRxdb!k_gYy;YR9_Ucy86fpQ zjsfxuLP`~%1JnVL`UCX709^oxfl3F^ZUH(6P&7bI=k4+v0@MJ|YXE%)&<_bTl2OV$ z+5PH%K<fd$@tMf|DlT<OuQr0b4v4pbXiyOsfsi|WBi*lV1nP%C{ar<gHhhh$5M;Ns z`e^hXT?NhI<l)YsWHd2?;7m^fWoRy*0|)=E&qZ_zxPX$mGzjduZdfIa*e|dbx?z<( z;&p*-=!R7ii3)*j?DX%t)Qv((B|bQdRKdSX2F1m06iPDj2SL#QigWmb90+7&2_7Bo z)jwAjqL(ov5(V&>95o%z^w5_y$v+cpQ+1UU*E)RzssNx^OVJi6z~&Hw3Yd6b5}HT} zMTFf9uB3B6`I3*wXPv&x>K`lp$D@Be>i?nCJIHr^6RTZHy^+^PRF^6Bv%H?<Gmm3M zd&X&s>hO0Qf1gvw-qjj!k;Zc`lPVfI@x_;A_?e6RZ12fV`LVN-;&$l8!*IKZyg!s+ zHp~Y1KZn?Kt`nQr;#l|>)qOKL1P^P(;*f+x#&U>-AXWhx$RTEeSOg>nM-eK!9-W;& z!#lgs>D`BDiT=#YvC&m=p_3>*{;Q(FNr-<6;vesnqtCeCINe!{{Nt(wGHhQ2Z>5D< zQ8=VU^JzFr@E)fk1hpK!8;Ff>81;EfrZS0v`#F4afnH!pTw)15lj%2~@}>CtkHcZZ z&$`BGOl3d8XVHEt&GIWG5RJin7vOP0&#Nv{#?FEXXC!|NpN>jCzwHY?+q%yfC86Ia zu-#{jlF=_BEawW(ga3tO$-@PTZ<3q`vF~lq(3#3hG_*g(ViYcl60k3S4tBQ+*hdK| zf^FO9-x9F52LkqQqt$>t7nY!a-5)a?0sAH*>|Z{&%MXI3K6O}S#bty;S_ysyU?vBK zMRAIj6vaz`zMasaQQX(*VHi&tQ}A-nDX3`HmxQmXXzWR#1jXjhIDxMxff5vt5dnps zaLXw{@d$6u6N|uhMcI}7RG|3w1}vNhKg3vg<8WCUy7DRk?!+g2kqFJEA3a6;s!&=b z)V(Qa{~Yyk1KrK;^>oSuPw|<ht}s7`&E|iG`(K*fcK55lKs^KXFQ}e&q4Ho_jj>`+ zCvLrAz8$8@imy6-BdYL8o<#fpPd{$B9VjehT3;VRAo_g;Lw`ll?<7)EEJnWPs_=;* z*&z8e*rlbTlTXgt<?o435P3tf?_!j91N$Pd7?4m@8XCR|)T~|`{tXRFfSs#0v{L89 zAtTxJ;&Xnut^3srAX)~ZR3h4O2N%yKdJ)1=_xFI{GYUZ&7RONXb}mH_KM45qz(@PI z(icf-(G!&3$$LyKp2PcV06X6qyZjd--*G$dZ<J>OW<WQdbs+ja5fLK5FT=9=xG&Kc zKTc~ZyV^++WnLFK$FGsg^7K2Z`tDDBy6Ut~^3?U~JD5qx^5pm7&<14y`c+l@ll-=N zyn_6b@b-(C{L~#rlaCB3KNEs9AUNtP(FXb)Os}cdF!$a|o$_n{C?3pLUhV+)>I8+` zYU;{2PF*hozNuyMk$*r_au<8`<NNkr{!LPD%)aONa5IB_zd!8wJ{*qa8&6y#+w z9edN@xzl!eXs8C^lS7&C9iP$wM>(*93;EtrIRB71`(QEw{;dLjo`dfRNL@x!ZwX56 zQs@?e4j1)Uhxz(zDqF<Y1he0Ha3T)OAPbH$ZsLoMF%~xSs2n(ga6>3Mpn$#9Q;6>g z5Sh^9psgRqwvb@e&nZ2gqv_D|1a1N;h!Z&M2XVBC{KR$x-`EP;+Nx|fdTa#!JTlM$ zO9)Qc2A&tVb~@d|(+hl;H-umwT-M^EgYt0s)D;ND_lXKc`zN44mx26HIcj^6TB=73 zrm`}eakTMx9oR|QI(Qem1%nRS{r%@BbV!Snl@7l3tK`*I96aDGWnz`B6<=d<W`T2* zz8<!P3q?DsEE3AsM+MQuNaJ!UGz1vN0XRoeRhvcqDh5rjQ6Df=Pc~0-Y^YsZ6}z@T zjvjXXogjx@LvV^+T>^)PcY;PzR+ANks<d76FfGnls%+PwAf8-nqf8S3AC7NPMhRiY zvq&6RJ&HD1oq3Y9Sb+X^Ohf@Z`31|-3cKJW8IsO-_(mv(qBzc4LI-ZvNj`9icrvQ| zQ4LOUW-`sjz)APdq>tq<jyWc}Y{{;I{_=@qjyw24k9(_GE<Q%Pvub9hQ{yYRGjeae zBtL%4UD#}T@m)Frh7?xBmw)gM43!OO7vR?f1oW_gnq37+KO_v#@|5v@8#r9kA&+x! zO_pQO4e3Lh=pPYA$f5=wfu!NzERfOhm<S-^$5EV1sC>JR;(<Gu35QqJenuD)!M*j0 z{3~G0Qb7`=Rr)r|F2E86Nw7bDtrE&}?NKnq^MisgpibbiA=NfBi7p=3rSSpd95{jQ z@cf@*mA{B8x)h%OI@POeMqxK@g8v{8o@ykcal4S}&kMSi;LI}G;uSm{;w%?@VHM#Q z^Qo@R6FPt~(0Q+lO*s+p8an8UrORD-jn7Peg!4#842~oSaub)&uB~^vY@=NZ45fb7 zRvc4$l^LQ+7~ZN_9A8zaE9uY_>90NI(_JfkO4@qo%eK)gs%+O06me{I9RjM}{4)qd zV>Sn)qsm3obpsvCs&bWl%;f?Zp07a;`%UV58CIM_;*mQNZvfrh5Nr-$Q3A%i%lvdW ztj_klkD<6Y=M;}6suTS(A;JRaw@&oEg1py>{%e8jZK4+u>VG-Wx1vqAiGJdP?h}3O z@xYK#uH4&1UveCMyKLVw(OW(UOmyD|ArsyGK`#@%<b&=Ly%pgH9dw)MUkYfi6aDYN z1t<DYbVEZ;6a5c_xz$8}MIgU@q91+#Rug>}Fx@BmuL1kl6aD%3|GkO6i0Hy6`f1Gl zkcoaoR09*en(E;b{Y?UOpXfgnbhn)7n*`s$lzD{e>V%?+K8#M0)d_Xi(SX<d8xy@) zo#<VBqF?DT(W6FPTkq44x>mSeD!%npe;Xn}0zTDMLEiYN`^@(8nH}BB%#KlK_7h<< z``M46X>T*TFPVVP?2A}>DK+|9S;CvDY)Nz%Q++>@EAqN>nx4uUS!Ih?t~tb-S!MgW z$8ztXK5<PHhEtaNUkY4rQQ&DpRod{-4&A9-kP0r+lmGFXqISer+K>^VTpYE-EXw?B z-$wgzHC8@_=G_9qf%o8Wsxcq>kc@e?%63&*^hNj%UG(RF2nhm<(04*=R=a#xu*%b~ zVN~}tQ4kfAGm!&u&PxDVemW74;Jr=3<tJqAX&|KMH9<{D$wwTZ<YeTNE}UiseDW6` z1f&-}DV7>qe6A{skBIk}8hEfp*5QQ=8+12{r>Kp5O)4JkvW;>rNTp?H5WEtLP7>Cw z+trysOH04dUPp>vz0YaI^E&6|&v)6*VVN1Bt{gf+p>iO(Kc=J8@O-m|Kxm0Y{+v1< z@4e48LX{GqYF_(Nsr@%<sWBNk2lfhAQ)gvZ9XjuI4VA?en^4|m>n~JImXL?p`U_S2 zQwQX>kAX>GES8}nHuGBB=OribEF1Dhywxzn)>e!bZT!YEek>J`hER41j`7Mf_LOvv zwYBgTZIpf`%0I0y#(M!uWqUmy6T=$9Q&Do>M5(~+8%}%x1`$Q@L|1{?z4feI1Y*Kt z_<_S?W>vN;c*uwD4|VVqe)Wi2TUhOSSgnnlVJMozpwQwv&K}?h*M)UZN4|he;xh7O z5>m;RUA7ic!VcoPC|&oZa6IP%EVlx1XihoI;-RhuDd+oD6`CkviMouFPD7!+@bbBi z!X>T+gU%0dZJp+_O?{<Cp-@vA*Mk1HXte^vq{9O-HrTwGEO|k;)rraOFTUt6zTi=k zc0(PeuJ=DW`3$<6D&n5-@X*BN=Z8TM2yf1V4fJvpX0W^9dY)W-#4eBgJNWF-A+y?% zgk7Jz;9Q<ua0Ks2U>ljlk3?1KIe?-uJqCUPH`>XtX^fKMVT3SqmG@CDqf11is~lpa zw+GG;Bt(dlfhR!TCh;WO$<WOW-vOSKO9+*rE9zH0M%lv-74d`L9*3&&r^9x+;2^0n z5^8uV`;vz>NCoFapgb!Td`|bCpL+km+y#w!@(YKBdWJCd9tTuW@0%N3JqM22nAeR) zr}NweXK?>>m}~!6Y?mpOoK<BzlW`BST5+LGHN9h8mF+a#YGjq|Q$&uT)fz?k)jWEo zIaJwpV2}MN9<>#|f7Vs-xqItzdFesPM)E>+m#x87aE>NK?m^Q_IsQN|*Tk-;%GOMU z$}cL<(-9mU?_s6kZ&*;di6epFZ(JOfvtb~;d+Uet3{f~PPo#omlcj=7IQtZG$gYA* zB**Ck?!uErld!Q2hwta`!T#b){$jcMtAB{onsUlp6!`=ybUgXt=1KX%10dpVK`gn) zgiC)pMEb^V(pR7{mwt;V9G8ozASOl+>4%V%4!nqT!Buc^A5NHFIv^-R#o}kBC*?Qy z^RrT#XkYCwN)>I?O&dLjF#Z6ZXZlFd^cP2<gqVoE@G9C5Y{1V$9(1a&=fdJxPM=}e zs7wV^dS04V5hc97R~qG1s*uw}sWeLB5xy_US9+xNf2r8!6G(kjB}BHd3Z+VB;B{<_ z!WrsSvgLx?mxw?7{39znEiIkp%(pDMf8pFk_gnJpIazaUbF*eGntT5OddxVauYJ6c zt*i9l#a23Y{HoPA7-wiW^uSqUS9W&bh`1GJj$gGB3ikR;`3^)IrNz#hyhY&9L8`de z3JyuQ)@!Z)D@KeKIWJP2=s>h+&XY^)aJ*B4f!Z;;5>p6);Remcb}C(`k8kLsWk;V% zTdVuk=GHv<{yGsa#3bS25PYTsig=-lU;7PWh9ZHw&&5*(t$bG{;xas=LT>fVaJ?$G zmL3>%Z=Q!W+2x-i0PAs&CbwGYfVJwS=GJ>E&b7MVxX>Edj|wbEs4z2%ZG2bZHB<1i zD7@wec;OhQ7j7ai4(B$2ZQN5;F};mu9Oh-kJt*yFnpUr<&QK8igcr+n#i>@;tEXGt zdr!2=$M?aE)FvZH#56>70z@Z4bhK6eZz6K<J=H32K}ql4d$v{HBuWjf^5ayJDz3Cj zuQs)Y4%6v_c3IlnbC~Gl$nV~JrBxoaPdPHdxB=?N`7@yAeR$#sgXm%O5Gz5t_Nvnv z!zzww2>j2zfdPK{U~dDw1kjKHZnzdYz+yK+1Dt_}g0bS#Q35V>#dyamRdXBO-HAa4 zEwFvs@Ipwin$(t2iE5mJ?F%E?J<G)OdK2Ld$NYV9=!wJ11}w(Py!$>Od}9ffq2EOB zdZ`!($MoS(p)14>3obOlj>&e<3c-7R5Spr?J_`hVvViwf9Y9-=+=fh0s%V7YHDYRE zsjG>hs()8wtEW)3>QAjmj5VSjEw~H}a!C<fE}_|_R?lOC><h$7C^$&*oT`e!Y6IbS zLli`Bez){*ir?K9B<kUJQ;3NBT@*^f?{2=!OYpm|sigXye^(P^yVB}eC1m>}kcLoa z%-wI7JE~P@#2rTK9Lf)^h!i+ZqeJrm2$3Y{qRw}FbJ3^X?e3z>-tE;zv)_e_!nEAn zNXV!cvW~heSDeN)JBw*{vQ@T`%>1zzcLAc)FKWY__x7(toj0C)oa$-=YGDemMT2uk zyXR?Pfmwh>d+Y$L6M!@h!2ZYcga8a9fLE(Qk{D<e*S%Fc;%qeCG^wq;1n|DkJgLD} z|KLO+eI4xH>VJ5vpD@osJkkc&lh**CPra9XR}pv{Z}WErpG|msfP4y7>2C2@gBGEc z?{2IC)$)1M14`3aK?}5^=u|@c2KiFxX6-b;r!o4ed=LM`X@W9kKcY~EaKBKUkb4CH z+eb6Br8}8F5+r^W$*qF+0Tk^Usy<&@MHFcl(7p1&>8}W{cCn7I=%No#&y{tZ!fLeI z=RDD#2XG2HSbv=d+wd-UBHqyFGRz<foNE9S^}HfiGQs%WPa+<?H#t+a{Cxvc*<f5S z_x0Yy`F<DQ(@)u(ogH5S`BlI@2+`QWC#BUutf8I(v_I&QQwd7TFUYWW?MGGLbdaTD zy5Oo=#>Fs;#>FtUck~n(7*ey#G*Pi}R?euY>1hH{!(kzv{$0>@@k4}P|BbfEeMulX zvi>2j;zV~)YFDLgkoQ52XPu(uED{69F1}F#&;$XZH=}3RI*JnT&Cg|S;1v$sgoz%k zV41oqV->ypaRc$VmVXslNNpkb<WPb72!VW2J4zr|K#&hvpjQu(hYRvs0s3}9-gy^- zV1w@n7i5Sk=zju_F3FTH^I}prA$;>x(shDVwb}|nt_q9$d)uIRWJTomcx1)Tua*DG zoqrnKzR2VI+=pad&?tTulIMNGqbps1T_OMZMHEcsmFR9q{sT^#T(*?dF3FZciB@0l zON_i({y}$yZ#{p#Vt+LqOdONxQW7bBNK4;>uqs_H*y6dHVOXjiN&+a;^Z;SJ20iYm zK#$@vobU4K>m+Ud6Muj4)q5X|3ZwJR4%EFFR16V%9I1piuF7i}ol)_b^&wUW+?^8i zmt3a+<}@&P*(=%eQ-$<P0f_hfTmc*vfJDzP6~I0LFneBA0B;jO6~eO}7JG9K4L6QL zE~j=uV-9<34`kr4g?$7pJ!pOfmu&G?@v7J#3G0KGhgxG1G{KH_I<4WVDr3SrqqodT zLfED56YN%Sb~pzLVFzZIJ4xO+eLEjkI=6zW<4m4jC)43Kv*>pSl4*+5*%Y5<95ut% zUQB*%1;}$3g^uVb+`zzU^8cV8m=EouqwtI|fnFmJzlP?7eB+)hZzQPahoUil{DmkB z2nOA#F>Y-L^av-z`+Nkm2-y80WFrJ9gOg!ZBr+^m)YQyjzYwsI0@krR*uy9R(h!;4 ze-A$|Y9Y<J+ASe!W53K9j}|RHA|{HCcM8zE1PbanPC#EFsH!9XHI`)gdm$1`5M(b9 z2sev3Ka<W+b=@D0bE)*2S5Cd$|8c!E>QVhDlV*`&f=M&<<u;S0CSGG2QFF;V-@-hj z*(*n}I=ynrlY;BG^p<pg$F<)Q^wcXgpiJ!|%D%a*i5mY0u9krSPZxL=E}<71-#eV0 zeUndZ)myz?8vNP`UZV1l!zOv~TD6?U%Lv;^Giz{0<f*}n;DPDw{XiqUXA5|#hMFc6 zd&2|8l<~YrfPP3IN?&N8G6d{V4pRndrhw&zH2sbMEg=v;$h=NwT4~tP=c47}Yn5#m zhgY7uxP6EI;_w|>d}}Ta$ETk@x#jS&+#E36hy~LW!@*{!@c7~@HBuv{+Ug}smOQj% z2`T@;5pNswe#5-YtlFl8rd-T2tal-^$9n=lMG+EbJl|YIOv64A2e@7ja0r_;-*_bQ z{*G1O1y-0PvbHBHiQ#u_{KZMt-<%Lz;m_feIPnhY&R6JLGcMIswz7TPZKg8K&2fpQ zvbdY$bfz-%&2i})_hlq*9z%JPbYO!2cTx8z&HL*D`ft*G*4*#rin92$EttDtT!yLa zb{<q`@XrVQ;|7?@mixV%gFi$RIQaYPE~qZ<O=*Q#2tQBqGJGa@y-e<xL@&$BEBlha zh}TRUWBHNgPeMSn9$(LBcl1#W!kvy*BUMS<>muG0#Jin&?w}#>lJB6d#alxB_n)Y_ zSRA4hV)@5?=w);Hi=>eLC-DCJhxG5jFE3I5$#PP_bH7D|KsQ*(xJ<r8T3h>YW3Bf4 zzVMEuMI|H3R9=9`T@r8#6ckOXv{99K_^$ya@c5lA0s2tac&?B?1jNHomrPW!DSuQ* z(f)n{$$v3pBW#zu`UDj;mA{0OPHY_}saiMV^+BBM3*(RxapZ`%-Eo7ClSg~?VYn6D z%e+KW2$n`(V&gVy4&myU<Sw|DCw~zNvdHJmU>jUbVa7@uZZhziZ9?zE2XpwQ?J#1e z?_0DZnZ9!A_~yFLwj+bS?%iRhuW38h&{z77L-chgS>(F!_Hk_EHyP2J2L?R(qX)_! za6RyY2Y&XzYY+VHfwv#<orDC)Umx^bgFaq!&?t^6TzrcvK0SLN9})x{6D=@d>U3XV z!`EByy*hb{2^%{aV!g@fW*!;6ZVK)7Np8otR1lnutWKR*zp7Zh&pX`e2_(?nsz5l? zcl6e1qtfUsTtARQa990yS^4uw_%Rgl^j2!+t%;syh<eBrVxaL{RKEamlUx(!Fq4R} z?bexh3U(I>-lZCOWFqY0@q+id5Z<QpAHyS|({>dYY6zR6lYw*+?)NCC-lS5KM=s(b ztqKLr;$EH`3YySO*nm6Y(x|!8hTm!9N0dv^rl)@@$e9XKUV_QU2Umk1lDY_;ewxVb z<%{?H6SXQ)6A};P64wI6LrLJ36E*1JCAyG#(#?KK#|P2ccPA`K?lDfWO7mY}6<;z1 znAdpP{-_#ePI~uZ9l?zt(ka~E(XUf^c*4^q-}h%ULJmT^bBdHRsIEqwrX3>U;64l| zLAPP2gfILuSqHx@#;b}QsV^W3$q&WT&Y&Z{M1)ufrE)j{4&A(OG9A4l2@o;HHxg6z zaz@PN!GWpzz5GY-f7JfM1Gx+Jd5_v3%=>VW?|t8RWnpXnSS)N&P`2B`X7m}x?KhRZ zdBgWHjTpAU_`y4IK}8o>t9Q^_<_1@R5l1m}`50}rLS?-?2Z$=08B$X&fgLOXCjqEr z9N1zKWH@gh?<z=iZ#BsK-@+m-6~IlfA-vOOE;-AP=J<>814)RVN*b$|8~;R|QX{of zk<IGm<G}F7yjPyg>gB%y7@D{0<v##|B$Qa<_<-d2S&#<jFa&uC5M|qc>$g#PdUkDo zm2J2;9~+w?JWWl(rRGgaf@bRrYa8%etFyI*)%4S(h3Uunuddc!Se<IFJXjd}UQr?y zr!^F{p*q*m?7a;um&JQh@3GIS&dno(rnm|Q(c^L3eoxQ)ls}~ROo8*?^EPct=njnD zUB^W<z4WQvU<sIKGRXQWWW<O_h>`R6f&gBK-If?N6*o5o$7-tYV)Qn9|KD#y=0r7x zv+~ADfMefaD>|~HgX;k9*qedgIF1<p{Y}%0PR6s>jsN{G^`M0JK7}llb9Ioj`VLK? z*U}&ky_)%RhN_PD263L{;C=OvstDp|`RMmEf~F*xXBo&2DP$yq_=$}x@-(m#uO$af zsp7hR7sROsQ*q})a4W!j9eCrZG(;2cBrWas;I8-|>1uT>WT)#_{(FZ0;#B$h4(Gun z(9qZ?O9lPCqqKA|C|W>SBO0g;;m6cuE^nd@Ho2w=YeM$%u#)OTd@D`*Qxk4F8nEQw zZA`%LK&V~%;&4QuR=jWU7d!*~YrsSuepzmM18&BjUZYMF=DTl_3Q<88kA%w;&f>oV zEJEQI<R1&ThgpOV(;cOIYlFN6a2((&edTuVtCi9FoI+g0W^A;eW;o{=g0sRQj&lfV z@BJ$awH|d24jukLm#5pI9u{hvpYn(|=$9jC;N<~t;AcN$0$Tfw;#!>s(f2ToI&Xs$ z1{AS)U_A*Ncqg$9X>u1`s_$XGJA5O@;|G<$o*Bb74^*}ok1ZSV(4vQ4dg#PM1C~0M z{(Wi6GT$)~QY4#2Dj0!B$!YwCNCkMdV>Bg@qkU1}=X=uks0!da&Evl(&m6+%Y8@|Q z!5T7?WnibtGQfd{nLlz&3Xe>$@$x_(3@r#>@KRr2Vr|Bo6`G>$<A#~aEH{0ZeUlJ@ z{l%7QkFxkw{x@HIM$;BzG@UOEN0Y>H6{fP^wvT(*RQ6T7?}I={ZlM!Weps~q_k20+ z^!%p+*d_pYD6Atj1~x?=PX{EaF%xb0tu6X-pWm={&t*`r!qnUUCYt*aJ;PBiL47CH z`7d|<;7xHzSahBfI#I<Q<xyhW#+T#(W23D@tkJ14v`Q1(C%ds-7GOIgob5PN!IIjk z3VZ|FXq+@B(IJOdrz3xG7j)s#34flPsRI%TLt^!hU^m(}*#8KL@e?V?yRmR~Wi&Zr zC?oCiVI$C$(I9?e05|6N{XqVT5p8{wye(QxfdJP=t>B7PHkqEAOeRDBZ+W6^>OQpf z{#+Xv9UbY7?G&`3?Nujr{T#AYkr<fy0kv$52N85a@1UabPx9emZYpERN%GFaDLPfs zs4`Q#1ADlexVN>nQ5Mb3-9a;!9-OeX1b^W0pB%UbCaQl!Iq$_(Y?%WhboMEVxa59{ zw|@f!7~ECeS-c)#QFdz<!!W-|5fX^T{vnVGTgTC3S9qV`CQkBhB8h$tl*n+r&+?EN zu>R8;bxb!XWBUACfidNy*mR3gOrxJz3Gf-E@abg~zl}>^+|IGUxZOvJhmRYMvHrjI zz6LJpD(n9ajDR=-sTrw@lVMq@p;;1v`PQiA3qdbNDIm-Qi9pN@Vws_~2BOr~R@?Tn z1?^jHEtc($vK5AzC8m~{sTrw@zj0hOa|r=wp6@yL_nSANdiMG6=fD5|1LgegJ@?#m z?>+aPd(VA4S4!N~6c%qqsN-oBG=xD0RIoO6rltnrgC5t1#ExoiB_`wW_Z8(-!KE%6 zyvY${oP(jbdV$$LH~Q52>1wB7g)oP?Zl(_Ia7sV1_-eI-n~`<Ryw&qs=EY^jW%Zg* zzj0aD&7Y#W$QPcOn)zbps3Kwe)u>B_?U7M2!nVfsqPGV*!~44vQC}s$MR~A<!bZsm zkSzh7jzMbiQYE0>F+>I2C;>PThwYBG=touxP(iyQou4QeC>$#;2%jjK*8U1Z&S1I% zS!a`Ftx6xDVai4GQ66ksm9s#DYEKqDaM7cEB4knB$|wOCl8a%X-J7q&gpKZj3gyCD z9)0QGaBGrrp?S%IBC=eUUs!Cn85h_s7ITTwVlOC&R1cGoWV~Jr$spTG{pwRbORqO) z%RZ&^_e9u;(h|~(waB|muzM**&|#VTTW;%%;6-19o(4vp7~yUo#j$=AUnPoU$O$b3 zM#4M>BSpwkQ%I&1xQmkVJW~2$oLf6SL-`Os(j)vx&k4xvw>7@Z?x+dKYy-SnHrG>- zEO?wBtxz?a2J|tM&G@hVv-uR!_RHqa$sd@<dwg^U_|bh00utuftrmBdq@&kHixl!F zaP{#%W2egOXd-q=@+B&>h0MPaUJIRCW`mner}91ssMhg7fa~G2mn)BR0WYZU?U#{Z zzpFg%&Bq78@z#L@9zIGXtKg6Ds`DT0EaFHbu>*ZrzxtD(%Gu%<ECfLE_8J#bIjCRI zx(dAnbb33A?_OpMo;T5$<XnXb&$)3EwQeKTOY0;s(O^0a2&1u_c%_m3jKZ8Xh}s$d z-uc1nId~;erh3%Y@-71RNjRV4;9Lr())*XI%E32rY)q<ygYV?v%Q!X~eQ<Ch2ZtlL zgLfD+DHFsKe5nXpCSnMWkf;sD!9hrLQ<0FgZq@Y?kX%EE3&=?@7q(NV^LaE#UsCZM z=O^`B!t+mxkb;vc_a;T#y}?N>;H1VNsdI*i^HZ1-oB|;Qrx52&fhr|91;Huo2&GE- z{`?fa`Au*cfE1j<-w27>MfDn-!iyB@T!a)l=!~;Hk=Tk}C>XC)CUtHc!h&lpgK1ph zr7?tBAi9WP8e<tx2fR)L?hynB_t%m@Sa1^Gzew5K0v)L{{^a>l_j2&>5$xghqEP2^ z<W8Pj8jBAaPrXAG&qV4INQQ}}WW_3l5quWb$vnYk-Rfy!+<_x*a8MP3pw~e3ov-6e z{JD5KGSM9sG+(J?o=-)uQMngXWQ!k5d7f5+Tcog>y*R$ExvSV!k8aj!QActHP;b$X zJOMqTi`*iE!=_O=uRAYzH4*9}dwvPHlFo}Ixr4UaUAaQE%suuaIZFQ5X}iXq7xyQW z2652BFT}8nPgMPKwMh(zkU@rNlbfmH7Q6t&b(iZ-+PAv7V`SgxN4B<)G(<llI_MgF zR44u3(>}6K^dnn3>9Eeob0hDJex!;q-(k#uwiAwtF&8mrGh?QlbKZr<?TLRl`DZq) zWOh);LLy7T87#WG=heo_<6o;+H{0_Z^5?IceINlo-E6%C_;j;c34m?}T^lzL+DM5a z9}cFdN|f}qYla-<J0EyjfQN@t#7B2YgEOWG6XlqZO+Z@V)il670;sAN^6YnJ<5HPE z&TQZSTct@(CU5#RsU9TjG@jd7X<!9vqzs@(SZJmAvtRT0*sd-0HcJ0l>|V#0Czs2J z<OydUw$m5A3k@ykFcOaR;$3jJvJUZR^rRC|V0i*etG2GSv@O0B8_=B4eMFe%ECvTG zSyR$;HAtj`_s!jkNrTW?Y`mq?z^0~<5eS(yU#xdw>#%*IG(m+tXvG*y$$RyOR_|_Q zI8j8ctlWGA6BkFdIwFS>Iwpn5<t3mOlUz|UOq(Lcl8mL+->kOaoENZ2Knou?!XiE< zk-f@2UMnlD%2UrW_x95bf{62I7*rZVH5wgJSf3#J&SK1*_ahx;M8njnFh%6-8|~Z| z<*=#wOObT<;Yxy>*ny|9G_%33Iu657Q8d&<prR=Iz#`-`%IS!5h0%9Ql(Q0vAQmnr z;BE>f%Xeo6(h~iy=HVg~6D0|u19|j_fIQv7?;J$%`ICMyE?s3h0E<A2k@W+ZB!t6Y zFebA&xuh~`_b#cNC6Pc;!UJW|ymkTDl1;1f(66{Aj&QlXfoue)RmqZphXMoH%1x^> zMFuwGZqE&-Bi0z)uerf=$clY~Q#Y8JONa9d2dD9*fj3WU)I9wTl7Xpylye2`<PisO zNRBRtL^)r8twmITHzRDns#W>o8P25=7{~^yT9u75u%*hRAOm(}pamJQl^`Q>MX*_Z zaQ%mtBoE0Cp3qpk>~Biu6QI0yS%Z=w9h;R|(y>*EBL`MQX^oX4ZmpXC@!DmZm3Y8W z547Mem*HsXmm~u<B})?`>{!*p*1`$7eka!#y$tb`9-uiD7Y2v<-h(}!3e!H<m>-FP z1#mUWw)bTec@wc!aXgKjB8NBtrnN=c^hR+@r4T7TnQ9HhL(tF_qZRfQ*t3cy)(ftZ zAqJ<jPyJ0QUMDqp3hZSdDRzE>NxFaasEsI*(#MUEz(BPT4VHmjHzM~_9J5)T&TLio zlV6pMBUqt1!iA#cAE-4)yg~<IQ45L<v*!34Q9_((!<n{*NRmZ(2huVVizP089h$B# zLk#f7!=}#w;?@ByR8axr`#8UaDQ*;Qm!cWVWowPCN(SYL%{V;zOX|Hz{No#NMUVyC z6$u+Wl9SlAVov@g()n9S%iE4sMn%iwcFm~Mzhqu?&8W|1Af!!g&1y3~GM(D-X62d3 z5P9vgtx7dHWb2g6@7No|?KiAw5n`t@@iCNG&2Xri;W3fUGrb+RBmY>h=0<@fwpgqx zA|f&8f=K6XJcDE4Jv}^LBlCjp%Rom&=|<Xh5`?pHhF*FJx>SPDQ5kyi4qTYBrdk@? z<IR%5#=_Q<T9x}G2AMqleYMrsoefYM<U+_gcNEhoKk__Vm@-bIOETFd-F`m0bE@qV z19AA~Qmb-et$K5*Q@N^ou`lhzJ7rgT5)GNt-bQ<)+-*%2HY~D9_cXN&+vg3P++{a_ zQ9}M7*bPM0ci#;JMDcY4o8JxW2G&uBg<%DR!5p=+J_Jx5h=O~Azo-Qph=K+82B*WR z;-ey*``OVe!uctNWNsU8s;y>6xbt0%I|gn5*UGdHR+$c_3=&r6Q!PTt7ro*zw08e~ zgAEV1Dndp&78t1Z`G<eOrRloQ-y#EB0%NKbIed-U%(`t3p&ABt-GMatc3rDtmI>^o zH8!n`O98{`8*k#It+4~H$dRE%e&o*LX65lUsw_TA4vZk48v{p>rm9l)k`)-AaD<Gz zgsicRKsEd7Et(QTOaf^lm0Jav>q^>o@*%c7&bc}!lknmu0v9b&&7oIRE|Fk0$6m>d zB(NN&C_UZ{4^z&pW+-hz5p;kQ?1K`zmq1vFA@N@z^KdXF4wY>Uam4wUHjRRyQxi6n zX2KpvAji}YE*khtFeAaZCde|tm$>bT?Hbi+x!MnZDtoq_0bzX0zg78*4ErP?Yy?@d zZdD$ounN-`f%VKLf6(E`Kpa@|Z=Y-;vQ?QS13z1B`V8|YtjxjcE-v_RzD!M3rX~Z9 zgEp-;?ZG;z_txCH@Xwn2m|({O0iXE?&=|DKFDMjoLg|GzIjm_xp3<Gf8_Ibfq>l#o z3H7oLlZ1U=tuZQIXNclGt>#q6bQ$<Q1v<6?dxiw8lh|L7PJXily~sG&OLE*I0c#0> zw&$2B{SRsWS<=6V{GQS#$871hYvHNVZzexU`eeMR>Y#^@(qzCm3c$U5v?dL734v$= z@j3nMcEztY?S}TQmiMc*sHub_A*Ro9r35$##GGO`KFQG~@O_?e<olfrhbz^QE|b}g zSZeywD{ctsrV+8_`&Q)vN}|HFH=v=Y4eWjjt2FI)O!hV33L@_K>RoQDXx7wLZ48TN zBzfF9OqotFDZst3he&AG`hkW?P!fSwoA#nL-RhVj34jh^hcnT13FCv%Vaj*tKj_gq zPMl|kVanG8QxoDNh+#?-fv{ApBJ#{GO!*5(zD-8vxm}o2<4=%hcVSAkAHl0+ULGWn z%;p47>24BTj5?IdC4R_bCCDN{TK6+fLN}~J*Wto?2*fI$F2xa%L>V^3j|gnM65ZZ@ zAU=c~rbGqOO_qq+M3>sm7j<zJrai9Vpc`V^gZ9F7o<l#zE$9nwL6G@9XhD$fJ;@VG z(2yVq)Pevfk)S+*X_SEqMC3thu+FI<+p(?~8UXw1T!ZMlSGf9N*ZTO#5SxPU5qz6n zEqwAzRjn7RgXu@q!YRt9f?jaZH18BO_*E@<m2j2|*RqwHPt&H>7b&q~@eS&xR@{TX zD)>{uIsWg3qN5KSeZWz)6~9Lx*oyz?`&6;!|E8GyM;{n9Nt8U15-k>Ap%Te?@QM51 z<o{l?uD8B<|5od3R*8D_ffqT7GuwlFs)IUR=Fl?hoy1zv(?hc2Xe%~OE+NJm1gYl% zbKRLL8l4|tw7`XsK?sIeVIc$t1bj2(ffS2o`OR{&ubekg@2&Ez6rurLTR4|PtES1m zkth4ACC@)pvP9FGN*9y;Pj*P<ZLCHk1v|=IWzIKyV;btrh;&{KvaH!iec0fPk978r z^m1XEOh7K)suKyI_c6iNQxGR60~KZJl(T+=^V{Au>o+((y`AslaYRl8`<s|07@Y6* zcD~WQ(rs{V>+P)eQ@VFoFc%eSv#Qd)NrGAkq$=HSND!t?-l6@Xm8v#$ta3iizezbg zRyF_l+GRVH$t%}dcH4Zq?(<+59VQ4R;iFte`RmzDEBr`ldhhu<u)*1@xA(T^$#f;N z0?)XuKpoN%<CD-yAitRO<M!}s69#+S$fPUCFk1J@3h(vKZvn&&WB?yq!M8h4%L~W= zEL-8b-1(hqBJP-yw*qIAVb24`1n8iIs`+?L8GKwdziI8VElLsPL%r6CtZjZ&UhCwQ zGi4Ue0OK%pr)Cr6z;Z6HmK<3xC|Usv53tn$2CE9T<xy{)L&2u~DNT;*?^he&+i2>6 z3bw)70KMAaJP_{uBk9%2A*Iaj-@t=KJny_webHp|DsJOgEsb@4j^3#w*+Ylrxjn6y zk}D5PaLY1-2phaaUb-ar9LPbgv0Ols9qXi(bUK%yk*xEQq=`4>vmcS1j<v?_NKPk` zl8UM)5gTX{E~UhE^$!KI1?}iZhVz-)68zeBQL68TIjcal3x>S)bB!U$w@sUXuTyiI z8-^ZeecJX5D=cx=un)tA2%VTG#WEQ6dS?6WVa{P-h@8sYN3>z^1XFEwDr0blBb0p6 zE1JM7{|u?7hOd>80_F=d0SlvU#MfA^XAs#u#5pk%QdMqOKa3WFIl31fA%~@sV7NMy z&IpF98vEp6_y9@gN`iYz{dM*?9^ppN%sTs7oxjfhBn4qMKp9kZ_HqIR>FfmrV{VYn z{`G3p*FieFTZsb-cnNjOFHE(}6(YkhIQxaM&W`o(m0Z7H1@fA8cDM2u8F&DSCA76F z({6)N{Z7PpwdsJr*4@Xn8$c9YD%CPJYIBcIsdg(hpeRdno>J{r7Ez#2sdg*(NbIj5 z3sR|eD>E1e{f<<s-AW<>yh^oO8KL=Esdg)|<cDr0m1?(Q)WTV*#=AJ=_bJnE<tREX z)|~f~_Op*PXDmWX&DpKgB9!%>{jB$3<$E9W9$KlAnlrR8(t7}hOVym+%9BKs8unx~ zY|@<3u+Ohb)|}nSL`tH<bTFX0SaWtO<0%Ypt@&%tvx#_+=A6W^K+Ty(22G*8M7GwB z<vx(AISayCZ93S6=DeM-9f6wj28Kbmqb96s&cF4es%p+p5a>M3c_~M}EkJY5^Czfk z&bRpyR5j;G1d`c==Dd$mS2gDw{g747d87mdY0eKn2vH@?8I=*NIUgzqc~$vWHRm0E zAXRhTEkPPxRdc?a=u+GHiZtf~s^)w^)10#riCfTD+=3u^2hf5JkTkL8jMh#q2yklm zR4{OtH0Rlr8uivOI_Fo&HV;a;mCEDBDdGHxV5ChOoF@cn(+1~;uC-}Db$O0Daz036 zKvBHv@|pA0<yotKzO-iPz*W`izk#a;0wRBdzuzsDkn_~#Csu_&booQoOD})O@bH!8 zmp}Am`QD!s3Ht9iyI5Vu`8h6Mm+JCVbg~eqA5)iqrlNJDF4LR<vV_i;H;0_>>O7?b z>*G|#>^_nM(uF_JIp5bg`cor~L_O%0Er{neZ15xz;d+Xk$f1AWP}Piy-7i!IS8}jw z&*TnYFc~Qz;`tn|n)CRejMX9<z#`=UrdK{HqXA4cd@_Ova3~LBdSx<4&!zdgTZ#0B zMoQxG9IBc>IsT9qSG~3o#-XZ}lTW;%eDzqbC;)_MMm1ibP+4m2LPs5kt41vz@(ag0 z1r_XZ4p&W6%<~IZuYVL%_-fNY^gA)sovSt??jkU%!Bv2#IAleo)}Q@E&Na43i4d+~ zE~6`M)Xlgvbc35;$($`eqvYo@w+n|du$R$Spgm!qf-BrNLprk*iQoV=DQQFG^lPA; zehu`WNNrcqs68=S;PmS`1XFv$69<~X8ash#zY$x}TAgJ}ScvHy%l|q56c$nnTG0~; z5lYv^nu(0d2>?a2Uy|wLwU#E^Fh0nM>X*f-->9<X&!mG;)6KyZ8QHcE>d9Z;%bALU zQp^ZU!La2ZoHzG^i2&~uY%}^Uj6DHUFuy$@|Gd5jR8*Kc1ryGTdeIb2;4Y}srPr*R zJWBNFoUUq(WwG?PYBoylmHu|kfX!!ib>h=fIUfts1LV%^X?157WgifaRXp0iRkx*1 zsV7*qtzF)>MW=`n0ZWEZ!%kqgmh-hz&l{(0i(`1>w3Rkcv7y>t!l8)>Wmc&>q{5jF zNDLih=d1rjPg<b_&C}QmBB506KVpZIeC_gsy-?ckEV85IwBI>VIyNiwq+_cxnjDoT znkFJq+8jGU8%KI|`%_LCw<>Q+v_qBik5rkC#fPf9btj1aF~w=?V#oBf4K)wAMoQaB zy%(gglX|dnzR!$eQ@V2X1F6bED}rdgh-KD;Rr8zIE<2>W))nnCqODCRKl33k>k9c6 zLdJ?Bwur0dD@5~ppz-{ZSf%A_2%&kWqM!J%`$%kQuw27FL0RQF>JA^~H&&FFOlJAh z-AtI;Y_h_%(}(^hp_8R`fApsq-LwnJD|87ts|A~huxdu|{i^w!*DiZkd6qCK>VXX+ z<a;NMf`g4png87O{y)gMEhKlmHceFp^l?={qaetbrm`Gjm4Z4XdGwwo(xD?U+O2cG zqSM4^B07D4F-jmmc5S_KG*kuP?6O7*4OSA3fdNwQhOXbnELkF@T@SV$>f6x8ZmqhZ zi>=#s|6}F6%S%VbL6;7XYsP&ZTa4VeE|Uo&AVzZ|%Q3D&5)PTf?GnC{vIo=7gZS5i z{?l;~PX|v}Gdp=675Z!8{4=zefDY<&;d~Cudnya(sw~|0fE*W`4-3~rt_Mk1+3&x! zceXlW_3+iDt1sYxTdKEIzq2-CHGLyi2Y=rLj6z6PdD?$zZ^B~){-OVzW}MRH>~=Y@ zJXiXY1{Rx&7BsM&4oy`avhxvYI@U!?0uF*bOdSIt1{#7HvWOs#GYFgI!*56~x4XP& zf;t^A9Kq+Unh9AwZH<esbj+COXu(Gj9L7|2pcM~HTqdE%+`{XOIGP8;JTZJi&uxJ5 zW++ekNIHv--C#E5Lizg|QmuDjX`PbeB%frOl)u+)-tut%pnYS+Pwem}KiMyLbndBz zPqZPM*gg!%=Z!?Oi{j~20y5KBaYQVdYf(AL6c2roB(!^q?06hg+fKEB*vH4jwv*oc zpmWQArE+Kt;ww$(N0)a2(2!xQiqxER9hr9YQpak6;;~YZaleSJ++Z0P^+?13qWi`j z@wigofiLFL{b|<FPR3x*(n&Xy+qntS&_U0BoEP$Y4hhvlF7m}$%OUzMLaZFp%igc9 ziPHJP8^@JF$%NS<*%WZOFJKY{gm)1zf&wDC2#97H^mCTZ>QD<oxg#W_U15%25W}VE zEJu~vKCI|g!=%9&jrmywq8k{fBxWzF1s9sn!K@0_O&$M4TUuO#`T>+Z_mRifj5^3m zPteNhwzW`(Jni0Qwx7afDBb>6-^WH*iTAPLbv#A6bfLC9bQ0X-_@&HsKnr{aG-#5j zW%+gTQ^m<F<A@?vzbN4r@2!52kk#*@>i1Cft4&h1!0OT-Gw>E2mbJP2t1v+tTAYo@ zChQJStYlrO(XRudp-VXmqX+)VEa&2Z`zaR+qM+@gSc;Ylg>s=#E)b|7P@`8)I!QU` zJrhI^>G_mnWr+;st_!?C0_aSX2QdxhGndE+2RSC`=`@Ctb3gO_TekVD4ld|F`<R+( zjej7(ka=ik0lGN%Gi-T@k95+?v8wj5=y-XtcnCF0-C~@>CAAdAbmM~+Rd@3A(!~0o zsbj}uB-g=QTL&u${)4A~2DnHg+03i`N;RUFJ!L-@aXwpnwZn=W)A>|-H99yIHjviv zm4qLl(?YL}t`Eiid0Nkx%?G!a!{BO$<_kqOl+@ieK6HD=iV}Y}5%-(9Pi94hbOi*4 zlBsjFrbD<yWz}-fn{v<_Id}v17`kQwy-82z^c8&(SVyw}%JKJw@X#4utgR}?$b%&K z{2N2|5=6t@CUINo@jc~TiQ6i13Gyd`)R|z{R@!J`LtxJkkniZGI+g?JQS#H749?1u z0N+B1%N&k6i%z0N?IhA<06JZoHAI>`vhTP-g0b`?{a1O>q<^sV^DP+aYx<C%(<a}! zMVvE)hM3%##!Z)zS_n)fCY&$HL&j>@w~c%q-U0C*B8P_=xV_s)DSg|5o7E+KyR8gu zq`ruVP#-7B*j}bS?pt3U_dTU4L#dCGGUprU-3Sh2r6G0^bq*Ac<977I?78i7cgjrC z%K86i0iihA?PT{cc7Mfg7rS?{`#8HlVD~@Ry@A~)*!?=Y@m7PAI6oQOp^?@~Sy^p5 zMzAR=EK|Z<1e>bDZjmq;*-mxbq{7Ba7>sb^=!OcrRKm!%yJMOPi<U65?(Ueb!a52# zU1vNQfz;%|Nb+Dru3qfZT@~<}q1M+u)(1@Tb&6V#N4>Z63*1O)p_eCr_wN?oZzH?Q ztXFuaEks5&flMNgCcLA_6Ck{U{c)ott`uIK#Pt*2llLKZ-OYi*yN`f=!uv7#y~6u9 z8Oq|C`A>-J2dEK}npznUEUs%L*ek9}y=XF8f%JRD^&awj#dWqfG(cR(6Ic`1D>;TH zu0zP@6W7<tD<uRY<S1qSnP71(>D?{+HF3=&B0nIm(|w6_C9ZQ2EX6fHKS*4^QpNQz zXyQ^_O^hPNHHqC)Tt~B8it8|TOK}~@ZYi#j?3Uu{&ZDG)#dUN3`Qln9VFBX$yo3da zYlVabh^tM)0>m{-!UDu~ri4jx#Z{(be3@^6L(pQDzs}%_s&}Y7sey>29a76t2jH)< zA>56;x<&+GzD<~#Jo_Y^CHo-^vI7GYlOIz_&Lz)T?5~paD}}n^ojbDXHZq)AkyJg@ z+`bLzfc|`*R;Keqr3|U)-=1c4P1!Ji$6l>#^C}ySVcj*?e@Vxnq4g)J7`JqruD6$Z z*#f3(z0@zsqxDjck|&^-visxaNnF`W-7RtbdZ`%%3GSuF5zw!fiYLFfml`NTxtH2- z3cb`UwU;_)=4ipaR11N<z0O{V#M5Hx+P0Ek>u%~9wN<6}I{AFv%>+u<+udBMoP+>! zL-8t|p}l+!g=*hBuL-57ex1x~K{~-<N=Y5-yU+=aAy{@YdUH@G^D9-LZiNuaPUf3j zpHA>OyJaWy5xZq4^A5XZC$o;-vXl8OyJaWyEW3j{nM}$`kWO%mgavdm<0UMhletvF z0y>#!2@B|CI&wLUfKKM9g#DyWrbOjQN*;LP>mX3cN_Obfsrag5xiAz6T2CUy)jMk` zy_V+5*lEBD8T|~P9~hp&4KVt_WC+vpNYha^*WjC$@U*TrhpK?i`IwH<G>%@RLdSFz z+CTfF1N=WY_luE}x)@%ri^S_HrWjv|{HF!p+#o?Gy?e>`9Qw)V{hYgmqxa<!q;9zM zbG{=S(Q|@ee*|7I>?z^s7Ythto9jU^SD_<9O+ro8b&oeu4RW&=N6Ut5e0`c)VQWZC zT$jUY+wtUx#XqCT0h<a<sLigi);wDCT+N?r8f*5{C^hXhu8*{J$`Na3UpBA1TEyH{ zn-^<cI7=q20d!__HK8$dKl|3`%2_z}KQ(GD+y(Lu6Txjq8y9H#k%tf`9>DTXUyY09 z*MZc<Dj#(n?v4M)9|^Av3RjmV@cJ@XOB2B{QqH_N=3J!*#d6&U)^84A{cEp${^Y~I z+{FK7ypZ)u)+^7vJo3WmM}Ey#0Hx)6SZ2kQ*o7WfCGi2(vYM}r(t%u_M_iTdgJWr= zZ+)0r-_Pfgt%WdF0<db@>z8VT_AH7Z7ns_mv3a`d!o;>^p^abx3ua!S!LJO1E%~UF zP#Br-#B#J7&&NLU9UM`;%2fOc!j}u}yu#HVb#0MbbhI1$Q6_f*Zk%RQexFJ0fmZzt z^2n|V1;*n5vQ=!PL8wnqG#4&-bYg(TvWFY6JVcM5h>KAKhH`+LO#QKZI9`o1!%Lml zjJ;5mIxicmz;RlpV7ks5Yut1;ZAg@{Hq@UMz`WMrX|<?3<LSR9V!Q!*!~w&_N*E~8 zrd6i{=aH4R`N;GsUcG4UgG+t9>Pm`3C9K|d!lXWW9NKr3yKJ3~N5Ixoze!c5N~+ic zJe}h4*hb<@Bw>Wwi!u`^xWWO*3N=y^L0lI~_C(cx+a%|+Pc1+W0VGz^gJD>?Q~pT` zBC6^_c<Mg~A~oUyAoAieKPwhnL^5^Ac`=&6p_C9|*VmQPeF9V=y(>b`6k`<z%`r9o z*0j}k490=HYMlREk4p@1i*>rci0%EY^8W6CjJxihi!OxTb>p`XJf(+}=V?)e+96Tb z341j2YwJAli)`i(bGY%uLus3mG#_{=x4&wm4RVT@<BQlf+!HNVgJ_*+IN4opbN*Z? z<DcQ3Q8E&HF|LRzPopR#krX}N7yXPpC)%OCjj{vVF{nx|SgUJ-+&|+BZf)uXw-zOH zE*6zs!zkmfA-wC}EVtXgl%ExzQ4a~*X4gU7ut4_fH>tdh$;R$i<=><7(%yI;y$5!n z2BhLn-0C|n9<#rCe|2N!S36WGo;edD(%)Ga+WvAOauf4%0e+)iDux1sL8zu!k6`t+ z1bZm9zG7+%QM*yK1vnW=p;SZOmg`IlRo2}DzN0&pE!a6Rlt${zdq^0gNpDlq*&V}e zU>dtG;H9V=;HJ%kD3v7MSi%iHHSMz@%3LBGsu=HCZHh)GLuAk14Hn8<)lAwc{TI;s z12wTP$<M?O-VNeeh7c$VQSrJ+QzzwzR(A=t4^ZDAR5fLff65PYBkT`a0p-dI;q|;# zpj%;zVKdtgusfR192c@X%7N2S$^v#@u-X(*qRT^+RYWpMnSHmHTm5iujm(HK?ZL7% zR9L3pNBVJ3CY96Z$l%g*X(=5S`MEHsGEiDta`!9Xb_(sPfG_Ge&fgFRF-Xk7c2B$! z&DmFtOLWTK4Cen!*vH^3(K>jU%mQbbUa!pa%Mz_Q&gCq<3|A~=$@>z4QR2alg2AZO zz(@&GD?CEx>N1%t%Fvw}VkjYYRg&ET53J%eaZLU1R5^$sadwpvcsbdlg;B25`f@eU z1py3mf%%5ymG=Iy$XcJLhV0@H?8_LESJ{&g4ckKyZJcq8A+%%_?Ny*fx(0CoW}U=^ zdZC6@Qy2(H>7f37kn38lo?TaAXg(ca%hvR#5B}i%gW-?nKYsnk@vk<#ddF)c*F`@v z+T+@$2`ZJ?Gn0PZTw#6g;tJzsV$WQ1V;J?sXOTIPli-A#t5Dyu{bp?Ix#K4i{0rZM z6e)LsH3VxE*jMvDE%A1`dOD=Na(<^{S16r?XjhJ=mttw8)B8k4e~OG=&-+A0hy<L5 zRC?cu&;f?og(rTzR&z7vBATa^F48OSkei>2Q30O<5C)hlfs>^Z0PR)tJJ&8dtt?B2 zkuc<kV`G!5-J9LGbaZt1Uy0}5y(25`KB4`mB)xOjVZ(i5sOP#U{ZLQbFww4@!z3YM zX!eeh-WW>CEn)6?JIFCROgC>wdFRa~G3A}J7Wc^tiyJsJZ}uC`gfD5hQJjw_3)@vn z?_Xr3CGNCG(*WZ|nYX|EP&1$gf~MY@mhS%86`{G)ZolJBqSg9-xjl>sKJoYR_U4jk z%O+P$x>CFSZp)^_F|NLrO-f9v^1FBDl5O3g;n_PJZcpWAyq>VL{?u=(_gBTO5K}7g zQ@uCcbrJF#7+gyMsmkZyZ;#zUFD}%HnhE-v8}&64^)-|9HIwx<Q}i`c^))x?YfSo@ zY5JP!`kE?zT}(^yk^3t)Hz<0W{;hCV$XlYKIX>DJTE4BgBJMFgs64K(`Gvmb34P6z z`kG(rYo5~MwS!2UCa5hFu*O>ZfN<P(yjJMQjklieJXwo}4&Y7_jdhV5TSM^{arNFB zo4#hTzGjWSX05)a8W#&|FtRt)U`Nq?xOOJv&lZmB->lusboS|>*3{~Cj)vdVhUu^v zP#eqcLAttrl;8MM$){|gcnP8IV)7<mZ42Kha1?6TNyI?Whsr|L#nHERvZynXqvj@2 zH%tw=ghOVCx*;lHFnuc<>wd=mO?8*@_x<G^LcchwGA>0_MBOMV2HqlEnU!%S_@=`* zi6M0_)l3vXj947D%eC_x*D$za7DsGyg*1E<;u-*-k$j;I--NotHo5c--{>`h>!ROH z5p^O&Z*qTRKij&~-B6)dix_R!H6};Pf_*>iWZfXjkXBNUR?-oi&CPX})3-KF)LlW2 zn%hO)RcgqU9CDYa8?FN4>5GzH#{NxpBl#;!+P5-p7RojU<+@umR>s`{&s=zJWdI7A z`rj_7q=$me3NC0PSJsv=Az<sVdhdr}QTm48G|JaC>LT!}M)7&CYd8RX3{bqkfqzDd z<{5o2)_SV<((5Ah$_O`p&9m)q?r7!qaOD%rTjG)iynx&}TKQX+7QL~evHWl}n*LuS zTaSvpjg~PDb%MB|{M}>Oc-4*zb(ZfBS?VWFj`kV2CY%t)*#w;OKmSfJPR!+ABiOo4 zgrjGi7l0G`GbNO9lu&=1$|zNNYD|s8EQrcqEj&WW_6(i7BQ+h9<a<|#qr=gknBqEf z_uR(xJi9HoXmO!Pw_A(Ng}EZ#mR*>;V2Q9ik2hs|;q?k3l6%?1JI*+tCTF-k&9brs zPY&btB&56YY^W^?zah4Z@vF1N+pX=EjiS=x$b3^->+yKbxXz_XK;E0mQUEesx2k~R zH<g79n22)-A+Dt4NPEA(>fZ9aUA_+G^LQ-p3gL=R?qk=lFLxP}qwHbpb#)=Ge#z0m zHYCT`4Q~m{2H*(G3vJshFPz<mmuAu}C?c1z*9i-XXt~?+1BIkAhB~XLguPJ06;!@S zD4u-@70f{88bHO0v*)#=RF0`{DZi#7S<=Wi>n&xC$CBZiDZRJ9r94F56fVwq6emV2 z4oX9Xxl}DooVPF+aAEqOFp+NwE(?nCua!jDqliC$O?_+DhEU=BL|{f4>ikeZz35jz z?=5tm@1F8(5U1Wd<#DbPc)@!xK$iNlHw6+tWkKL6&qf*ig!pgrC2GAg)5n*K)+-bI z_%d|8a`jK+i?5P>d_g6vd~yD+?S-?>m)p?p{Qfep8Jn5#Hmt?#6ox*Z5}!I{hW!c$ zeC3vnZHAMUjh%*nq^v3*-_PE^UWjO-C&b3$w}s$~>g6wN<Cya2`Sv^R1m^}=>SIEv zb!`MSW1Y@9ScldhVo%)kO^l^-mu1X;%X>m720)qq^;_+IEi2suBJ(W>S!P?NSkOi5 z><8Aba_$2J48N9RMF?dNVNk9%DG`1VDa*cyUm_w)Uxa<I@(O~|ES2q+m4`wt%ir%b z9M7oO#3Gp7+dfG7xi2_`gDwBauvBhx<x?Y6?&VNQF9WdK(FkLebYBcfuwv_p4A=F^ z22dOC3sb38Znd1ua1BoG3u+f@)GD_E7QTLY=6p2Rgd_O0ZA(KL%7vwJ@22Jm%krZh zVd>o#-^taG(P&9cvv9SbRxBrxAIm>1Tralp49nd0p0kbkfcJwi!3Fohd<%1*I2|qC zD}KAJ(Q=37PSnCU3#y@V*O>iO2UqJPDR8nk)j+88Lfz~s%>2WZA6qs#V;mu?oE=mH zV-W-VKPO}iu;1c~^|erAeXYg{UFG~hK$r(8O(Lzb9jy0q{w)E%4^Y-icnHCXxj5;_ z9DiP<aSBuks3mZ`zf$2xgPC0nX7^X__ang^y$f89Rx%_7$#@g`i=@j|reu{|b=il# zvc&UoVYl9KXXm?*JEDeORy8Z+vg(`kl{+?MiSJ&?oPSsN&==|jjO{S$`bt;G`sJ2P z%lxyA2}kJL*2uL`E-LpzBaEO*qB`O_$!HYusWZ}qu3U%+Ay$=-?uXj;{~IqNvf2)2 zw;f#2b}*;yAcA7N9t1!fVr7WL3K7BxG;b7)RU^C}1n41y{_%T>BTu9nLRy}nu~&OB zOg<Kd-+{l_puK!$IW}}dw1^QfaVjv%RYRRcl;&!s^Ipr#QTk2I`oEpR;G)}{SBEt6 z-oy`@UX<|cJT?~%OFlQo(I}Gld9f07g?`VAF-02wEn|+*;6JzJiN*x+3{npM^LPMx zZinFSlkyw=oKXD`-j(l%9FPC{L`L1KCypn-YVVuA>u}{W5&F9;9xKyNX-u137XmnD zf|KdD|IG;vCo&jC5Xw@ZWHe^Qjlrtan2*MMx_Weo*!7LImo4<sk7tC0PdU`_^G|IT zgoIb_TC=ZwOHB2?F`tgv?`nzn49#u~%4vLRVQS1JLR>>KRfZ1#{*C0~zf<J0+-|A- zyDJQz=)WGnx9X;dlq_NIA9rW<d_&c;NQX{W*(-DCm<CrU7V9kYwxw2oiRF;x6NJFR zR;cquq1@@g_i6D`i1<UOO&{N>*VDRC>YcaV7m5+5x?$~v)Qxx*Wxi-%xjE#n>MyI} z28pV0bldhUy!??;m};L}HEm#u5VnhM#hmw4bz@)**Y#D?22t>ss)u9LIZU}&*%4tg zZaS?0FdQv=PFUqM{YsCpg;maptb7=1vL17sa*;WAQ*$rfrn%Q|S{&+}iuH)<y+27a zY#g&651TsDX@IN@U)dN^c@cgNopF46vi2UHXUrFlv^Q$A*u6kFPPf$NvfCmYtKX<C zW_JlJPqfueXZOv*F{`b1D!WaX>$KJ0#_l_?AG0A!yjQO4{O&ch*xDnQx`^5qomP*N zr*^!moZtR}YPrYT!+{<S^l+eu13et*;Xn@udN|O-fgTR@aG-|+Jsjxa!2e4eC@eD4 z3UscyG(X2|T%2#qGv*XzTdl^NqFl2vp=@}<So|ATX0#O93v-RxHoRYzYc4Ym&&7Q& zUqnJlV!Xm4TUWRXvU541QfvYhl^ADCH4=8DuoqhG#l=M>HnR+$JY!BeUd1ZRvE>&P zs_Dy=C?tt#P!h!@W~;f-7AYnd71{C&?=@OViWV7%BNHGxqp&o)AV1f*0AX6uMxZQZ zS44{0MGVefP+(SrMn?*(*_N4`Z(V4%+02<a_L35i&dga-Fye|NV{S=)so6NeI3`l$ z7uv>L<3&s|`e%O9^c3P%q_7ke6&Ei_0-u1KWTb*ikkPiJ*c?nGQ!8tdadAn$&1^K6 zloXW&V<j1LY$XLoDtL)GJ9kNNxE~b?|JR88SRzTB_SKxtt4qx#`4*J2IJ+c!k=cf) z%!=@;S&_w9l3jSOx0E@#=0$d2b*en_=i5jSwb@Gwtwu|BKAu98EarGgzKF!xk+M{1 zH)G3;m;4CkB6~qLw;*C!HX0ME(1Lb1b!G|^(4w0QY(-#uQ8#rtgX++zAsKVB3ksx+ zOqz?@9#=Nnm|9@Ywwh50YQq}UoLn@<Zb)hcWDKqHIZq>vR$I2sZauGr=cA4`PRTC3 z+-9^R>FdTV$hTRI1q-r+k`E$oFI<#eTnsT&Wu4e@(@Zc#HrpS{7oi2zZvYST@TwgN zPf&g3{dhJ1K+OC_#RcX?5JPjWuZdXgIXPylRV!yV(YtOa-5`%P&YV0cplm-vy{iad z<s$Tq!~~<QBs*szw-htFNXgZ1(*AE{bfizztO5B&U5qQc+WX^`jBXR{T4aAb-cM>k z-KN@I8@grkRPHMiuFuQN!`XlWa|!jj)|~7@9)d12W?OUe^VywUVm3ZtE-AV(Qgjo| zUbwIj#|?bZsXI(k#}O3K7tN?9mSmhXGbMqCfQ1WkbBY!%!e~&KyQm1VCCr7{3xZww zg?afZ(9g+){l^2;ym8ERd4YYHF9Qfl(yB4=X~>_3bLEv+(g<T5bFE(zYOgfXI9Ya2 zJYXy_+l<~Z7A*MJW6qd;8>csAEb;6*B%_Uavxr+-_a!@YbTr&kkFe$y*$Xfho6!$1 z!~p#7#U-_X21y!Iy3NAB&Vrj}q)#%kjuN1RbWL!2$^uK5RY1MMwMj-3)Ewj3ae3(Y z?F*>4W{$x-X>5Y=-fSoXIYouGk|H_qd+RV#WZSYc^R1bz3iy>3{mt;)S(A;6%(?mY zMd;^k<{b2&cwf{{$+7~5p5L1PfY~_Q9x3k3&X@WVfa=I#D^laCltzypZ4^{qzfPG) z)54;{QIl?)l&a~EGG{r9ax;rj*JfLiaVml{=iGi9v%y;eBidx7h!l&mt<W5V(OQsQ zYNk>RN29@8skf_AEb|j7jGV|Qgid8W)gLlt>Zr7$MORO~gTLTFPPb&44pEto5o^>` z>a9l%A7?jCo4mwkwxVfLI$ea%(!zg;HgZ2oavT*4RR)dE$Hzb>8D~zJo}My1_iFw> zQk0A`=j2&ML3YW#W`S`Wye?GPf!vVJOXzlqP6JFK7)IJn3i0d*Q&p=JD)H2tjJEtm zX6keBB>gpLHdZ^l_t_T}Q$|(I*%v^%4$3gRj5^N(=(WQ!?xF`6lbB?jJZH{rM$@Dj zGjC732^#gR8Q>`Q+}?3-%G9(uv!wn_dYv5|H}~L4JX)ddBL&n=?ie(s)@aK!s~S6M z2EnYl`6=rJC2gNIMRTs03`JKe=TfmoGes5NJv@D0(4@e69x63Hi8<WL1sk4=CZ29C zfN-dJ;D(lje5Qg^R-<XmSZ?w>rGQ>yAB~{w;zbMci>$`toP7B$EatCQVT9&JfNRDY zft_&O)d`7Lk4Zr8P~EZ@8HI;{^9xYN;4c23Q%uzg2@q*o561Hv>opK|sxOrA_CkL# zw5kW})XtaqOOudWwAY4tI*~+zP8rE8E<xX8A=OlllTveu6ehILnMk(huZIIY9O&Ud z4+nZU@IU3in1+_VE&J*kTK3?4`tG`DKC$0OU-<8@*o$N0@yUIyMx2fgb-uF`CmTbZ zhj!vHW2p1+P8?ngbvk#ZE3b`d*RG80t=?G?SEn!Ua3gHr&gzB@<>Eb|$4MsTqVdYc zeU67iYWwSzc{?4yb=Tqu9`17t6LsTSrXanEEfXD&I&0$@dYN#HR%++6I|C=8aMj}? zeNC*s=3;%#{rZ|`aKWVJX?=a1sEiwgTMt8|vs_<40gx4XWx~jpWAt?cs6e$bdYs#; zO=emXnAVv6>jrEr3svshyRj@p$=$o@a1_vodv5H#SH(_X?6J5za<n#;-Dxm6x-N2K zTd0!0cVk<KGHdTfB~+P)-w<UIDD-9u-%1LF?%F(#b)TTLNAT^FD|L=1-L(zueqX03 zI~=QDuieSsPj!wD57q8w_a2?Ye5!ULN1rT|tS>i+21oga%F}z5g$YXY9;K{F>1<L) zk5?YLL0Nf^^5=vNVyi<mEB3w0_^}<^>3Hsc*q_omZb!>0<=`jVLw5X!W$iybJI*a1 z{ikQKCx1O0_&>@4=aLU2M5oZ%CjO7e#%0mCp_FE35B=ZM>vY6DpH<$8al5=T#x|4= zPw!XU*6bIC+SEI#?`d~ZC(heZkNaW!+v)iA4RJ$Y6rtmB*S9jtHj47UhigBfowcXd zz21^r*QdpJ#26o9n{XtnBQ9(GoU_|6w2n+}wntH0d+BMtAq0AfYf$nxK8TJW5t6UX zOR|TyD_?$C_eM+Z+#de^1its6{JS{d+_>rAMY@M>4+s9kIgpyR@l5D(HkTW>@t>h} z5hpaiy%qlBn$LC`m#&~j41fQn39u*u;|D`C{*|8l&mqG@`VICJv_?m$ipkAyLox9K z&k?wz_HX(lGX^WJI@#@r(`~@NDL*}AdpOX;fgTR@aG-|+JskM=azL7adAYy9gkE*W zko)=a&UD+5xUllhRkoj%cPh46tQ@>=>#O`JH5(=boQZEcU#(X*-QoJylBHZe-;(We zQbwaaxWnJ`_y0KumM#D7@^_wHzHFIizo+r2XIX*U?OvJ~BVrPl@;7m5A_11hNWfB< zeMnA*DF%<{Xe01FBH1!|vL#t~8lQdVoo5?8(c#e#H8nMrC0i_(<k)4gH(qmNLPGJW z=7)10&dIsArQz9(<fBKEGoCGPZgaOamy3|73GN9|A)vY}Hg;KZETUN~!Xh5tzyHC( zg9nQVIf(@YiA`lx4a=4-V?3aF7(X^v#NrQrWXs?-;3E>U+*t{P-O$kB#wXt5vBcwx z2yC*!<6(5dpudE&vV;VYAPNc!*k4fK#(xDOVQE8|p$&w#G{q)Zwur=n#L@#zr6Mb< zf$?G!va+%gVg>%i!VL>1$)02jf)WxsK~VlBPykjqwLb)e8GzkTE|zZj<X~&dQjt)c zfWJ;r)?`S`YLZ_AiaR8^pvi5B6P*oh2J$CnHMD`PqO%DEK&K2I^5bWzA-0&(_5YVe zsZjnndE@|YN}1A$rSdM_a`526hBB1Dsj0K6NpxB)OD&d8R44d``fMveJruMF_kz5# zyajIg%{s;5pI9ac)G?wp32+a8Wg^aiY$87`mV&YZON%%K_AIct#g-Fp_ns|V#Fm!U zgP-7=Sg>WwmV!i1FAMaLeA9ulA?&AkWlhb+L#UkVC0zvLuanXP`2>O3d)y~L4@5wV z;K)LmaBo=?I~M7cA>FL3GC_qmgoTJQY9O&?XwN|Q{dp3YHv}j%EJeLGXJw)M2gu*l zfb@qL00x}=o#0bqK^BU13jR{!cw2K;L8%4#O%TOgeuIz<XwD)Av@n$NB}5Z30N*w$ z0n;Ns32^`%CxT2b4*pUL)8~dKViJ}nB#fi_qiB>5d{BNg$USa1wN)^Hiv&3GgL?i| zLT;xRl914xkT8Vgg8z{RAW=$1qd#KA7PlzxTnDo@w>wHgKMoNUhu5!*%UZLudao-? zowQ!@DkiOQ7P++k!Rr=vZN0;i%G2bRCh8*^Y%%VwFb`<&owo5brr0}9WLRMM)iTkN zQYT_XNjU77xx<R}mf8aS_95-cwl{}beqcsDBIgR@*o1_!##uPQR+7EYoL*$H8Pi8k z8g0B27XxhOLgRuZ##?Y2tk5_!d$A3dQZD0@YVr`5&78exv@D|ccLz;}=Z)-sI_$;# Szu-7_ce6O<J&D%2>c0RQ0Y>Kl diff --git a/02_filter/emu/CMakeLists.txt b/02_filter/emu/CMakeLists.txt deleted file mode 100644 index 486998d..0000000 --- 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 2b0ac6b..0000000 --- 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 23567fc..0000000 --- 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 37448d4..0000000 --- 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 0cff5e5..0000000 --- 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 9a668ab..0000000 --- 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 db7597e..0000000 --- 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 993e16b..0000000 --- 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 dbf1af8..0000000 --- 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 66c026c..0000000 --- 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 GIT binary patch literal 0 HcmV?d00001 literal 40448 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 diff --git a/02_filter/eval/report.sql b/02_filter/eval/report.sql deleted file mode 100644 index 6e5cf6f..0000000 --- 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 d4bec65..0000000 --- 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 f793157..0000000 --- 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 d737806..0000000 --- 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 1a930c4..0000000 --- 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 27a2d2d..0000000 --- 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 f6718fa..0000000 --- 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 38cafac..0000000 --- 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 e69de29..0000000 diff --git a/03_TMR/cmake/Doxyfile.in b/03_TMR/cmake/Doxyfile.in deleted file mode 100644 index 1084619..0000000 --- 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 55f9aad..0000000 --- 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 ea0af18..0000000 --- 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 1280d32..0000000 --- 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 e89c8c3..0000000 --- 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 6c5f005..0000000 --- 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 4037ae0..0000000 --- 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 d7d0471..0000000 --- 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 ecc49a1..0000000 --- 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 b4efe2f..0000000 --- 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 bc9b4d6..0000000 --- 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 dbeaafb..0000000 --- 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 9ff15a5..0000000 --- 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 2b98e8d..0000000 --- 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 GIT binary patch literal 0 HcmV?d00001 literal 131072 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 Szu-7_ce6O<J&D%2>c0RQ0Y>Kl diff --git a/03_TMR/emu/CMakeLists.txt b/03_TMR/emu/CMakeLists.txt deleted file mode 100644 index 4eb8d33..0000000 --- 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 2b0ac6b..0000000 --- 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 23567fc..0000000 --- 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 37448d4..0000000 --- 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 0cff5e5..0000000 --- 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 9a668ab..0000000 --- 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 db7597e..0000000 --- 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 993e16b..0000000 --- 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 dbf1af8..0000000 --- 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 227de97..0000000 --- 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 GIT binary patch literal 0 HcmV?d00001 literal 40448 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 diff --git a/03_TMR/include/filter.h b/03_TMR/include/filter.h deleted file mode 100644 index 54410c1..0000000 --- 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 a959a6c..0000000 --- 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 52e2aea..0000000 --- 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 d5676fc..0000000 --- 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 a4ad16c..0000000 --- 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 f3cff12..0000000 --- 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 7bbebc3..0000000 --- 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 3b7ff90..0000000 --- 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 635b57a..0000000 --- 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 e69de29..0000000 diff --git a/03_TMR/libEZS/hal/drivers/DAC.cpp b/03_TMR/libEZS/hal/drivers/DAC.cpp deleted file mode 100644 index bf192b3..0000000 --- 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 ef5f0e6..0000000 --- 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 2040d39..0000000 --- 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 883d28a..0000000 --- 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 46428be..0000000 --- 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 385400e..0000000 --- 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 c07f579..0000000 --- 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 a53cb45..0000000 --- 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 d8e3729..0000000 --- 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 291271c..0000000 --- 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 a3ab538..0000000 --- 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 0af07fa..0000000 --- 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 c6454a4..0000000 --- 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 f5b8fc2..0000000 --- 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 8ede635..0000000 --- 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 2720196..0000000 --- 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 39095aa..0000000 --- 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 76aabd1..0000000 --- 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 9532d97..0000000 --- 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 c1dab00..0000000 --- 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 d0935bc..0000000 --- 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 c9cdf8c..0000000 --- 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 c2fd3a7..0000000 --- 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 4d85004..0000000 --- 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 132d3f3..0000000 --- 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 fa4008a..0000000 --- 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 81e1719..0000000 --- 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 42fb247..0000000 --- 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 3c5056c..0000000 --- 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 c70b8e4..0000000 --- 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 d4bec65..0000000 --- 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 cb81469..0000000 --- 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 2c3295e..0000000 --- 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 1a1493a..0000000 --- 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 c42549e..0000000 --- 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 6029589..0000000 --- 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 2bcce4e..0000000 --- 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 7de20d4..0000000 --- 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 9adaeb3..0000000 --- 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 956e8d9..0000000 --- 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 3032cee..0000000 --- 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 0c88a12..0000000 --- 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 e06c82e..0000000 --- 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 4cc49f0..0000000 --- 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 9bff353..0000000 --- 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 1d2c698..0000000 --- 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 fb4d892..0000000 --- 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 ad7eb85..0000000 --- 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 3c16658..0000000 --- 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 650c6a0..0000000 --- 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 020428c..0000000 --- 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 8038dd7..0000000 --- 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 38cafac..0000000 --- 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 e69de29..0000000 diff --git a/04_EAN/cmake/Doxyfile.in b/04_EAN/cmake/Doxyfile.in deleted file mode 100644 index 1084619..0000000 --- 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 55f9aad..0000000 --- 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 ea0af18..0000000 --- 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 1280d32..0000000 --- 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 e89c8c3..0000000 --- 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 6c5f005..0000000 --- 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 4037ae0..0000000 --- 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 abc6f81..0000000 --- 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 ecc49a1..0000000 --- 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 b4efe2f..0000000 --- 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 bc9b4d6..0000000 --- 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 dbeaafb..0000000 --- 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 510934d..0000000 --- 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 93ac392..0000000 --- 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 GIT binary patch literal 0 HcmV?d00001 literal 131072 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 Szu-7_ce6O<J&D%2>c0RQ0Y>Kl diff --git a/04_EAN/emu/fail.sh b/04_EAN/emu/fail.sh deleted file mode 100755 index 49e4e88..0000000 --- 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 afff367..0000000 --- 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 db7597e..0000000 --- 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 f28b9b0..0000000 --- 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 227de97..0000000 --- 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 GIT binary patch literal 0 HcmV?d00001 literal 40448 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 diff --git a/04_EAN/i4vezs-deploy.pub b/04_EAN/i4vezs-deploy.pub deleted file mode 100644 index 5f55402..0000000 --- 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 6c654df..0000000 --- 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 54410c1..0000000 --- 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 a959a6c..0000000 --- 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 d5676fc..0000000 --- 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 a4ad16c..0000000 --- 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 f3cff12..0000000 --- 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 7bbebc3..0000000 --- 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 3b7ff90..0000000 --- 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 635b57a..0000000 --- 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 e69de29..0000000 diff --git a/04_EAN/libEZS/hal/drivers/DAC.cpp b/04_EAN/libEZS/hal/drivers/DAC.cpp deleted file mode 100644 index bf192b3..0000000 --- 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 ef5f0e6..0000000 --- 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 2040d39..0000000 --- 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 883d28a..0000000 --- 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 46428be..0000000 --- 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 385400e..0000000 --- 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 c07f579..0000000 --- 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 a53cb45..0000000 --- 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 d8e3729..0000000 --- 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 291271c..0000000 --- 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 a3ab538..0000000 --- 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 0af07fa..0000000 --- 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 c6454a4..0000000 --- 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 f5b8fc2..0000000 --- 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 8ede635..0000000 --- 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 2720196..0000000 --- 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 39095aa..0000000 --- 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 76aabd1..0000000 --- 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 9532d97..0000000 --- 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 c1dab00..0000000 --- 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 d0935bc..0000000 --- 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 c9cdf8c..0000000 --- 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 c2fd3a7..0000000 --- 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 4d85004..0000000 --- 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 132d3f3..0000000 --- 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 fa4008a..0000000 --- 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 81e1719..0000000 --- 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 42fb247..0000000 --- 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 3c5056c..0000000 --- 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 c70b8e4..0000000 --- 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 d4bec65..0000000 --- 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 cb81469..0000000 --- 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 2c3295e..0000000 --- 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 1a1493a..0000000 --- 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 c42549e..0000000 --- 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 6029589..0000000 --- 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 2bcce4e..0000000 --- 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 7de20d4..0000000 --- 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 9adaeb3..0000000 --- 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 956e8d9..0000000 --- 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 3032cee..0000000 --- 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 0c88a12..0000000 --- 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 4cc49f0..0000000 --- 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 9bff353..0000000 --- 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 1d2c698..0000000 --- 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 fb4d892..0000000 --- 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 e1f0a82..0000000 --- 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 e50d861..0000000 --- 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 738761f..0000000 --- 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 cb9ca58..0000000 --- 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 4ddb9c0..0000000 --- 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 650c6a0..0000000 --- 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 0be34cc..0000000 --- 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 4d3de96..e70ed98 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 GIT binary patch literal 0 HcmV?d00001 literal 89630 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® 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 diff --git a/06_Analyse/src/stackanalyzer_arm.ais b/06_Analyse/src/stackanalyzer_arm.ais index 672437a..a81fe1e 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 41696a2..3922f0b 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 dfb8132..aace386 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 3c82479..73c40b9 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 cca20f4..0a2300c 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 1f4b574..45e6a28 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 f087ea3..a8ed1bc 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 0000000..ec9b018 --- /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 f1a3b4d..9d1bbed 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 322c092..82f0bc0 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 -- GitLab