diff --git a/base/mk/base-libs.mk b/base/mk/base-libs.mk index 58c01c5e60..245434e6ab 100644 --- a/base/mk/base-libs.mk +++ b/base/mk/base-libs.mk @@ -4,7 +4,7 @@ # These linked against 'ldso' and filtered out for dynamically # linked binaries # -BASE_LIBS = base-common base cxx timed_semaphore alarm +BASE_LIBS = base-common base cxx timed_semaphore alarm config # # Name of Genode's dynamic linker diff --git a/dde_linux/lib/mk/usb.inc b/dde_linux/lib/mk/usb.inc index 754df0fab4..f83e206f2c 100644 --- a/dde_linux/lib/mk/usb.inc +++ b/dde_linux/lib/mk/usb.inc @@ -1,7 +1,7 @@ LIB_DIR = $(REP_DIR)/src/lib/usb LIB_INC_DIR = $(LIB_DIR)/include -LIBS += base cxx dde_kit libc-setjmp +LIBS += base cxx dde_kit libc-setjmp config SRC_CC += main.cc lx_emul.cc irq.cc timer.cc event.cc storage.cc \ input_component.cc nic.cc SRC_C += dummies.c scsi.c evdev.c diff --git a/dde_linux/src/lib/usb/include/platform.h b/dde_linux/src/lib/usb/include/platform.h index 13a3571e25..88b0622155 100644 --- a/dde_linux/src/lib/usb/include/platform.h +++ b/dde_linux/src/lib/usb/include/platform.h @@ -41,9 +41,6 @@ struct Services try { config()->xml_node().sub_node("hid"); hid = true; - } catch (Config::Invalid) { - PDBG("No node found - not starting any USB services"); - return; } catch (Xml_node::Nonexistent_sub_node) { PDBG("No config node found - not starting the USB HID (Input) service"); } diff --git a/demo/src/app/backdrop/target.mk b/demo/src/app/backdrop/target.mk index 99f8448d71..ef4c951a98 100644 --- a/demo/src/app/backdrop/target.mk +++ b/demo/src/app/backdrop/target.mk @@ -1,4 +1,4 @@ TARGET = backdrop SRC_CC = main.cc -LIBS = base libpng_static libz_static mini_c +LIBS = base libpng_static libz_static mini_c config CC_OPT += -DPNG_USER_CONFIG diff --git a/demo/src/app/launchpad/target.mk b/demo/src/app/launchpad/target.mk index df8a3b2c2c..0b54bd0868 100644 --- a/demo/src/app/launchpad/target.mk +++ b/demo/src/app/launchpad/target.mk @@ -1,5 +1,5 @@ TARGET = launchpad -LIBS = launchpad scout_widgets +LIBS = launchpad scout_widgets config SRC_CC = launchpad_window.cc \ launcher.cc \ main.cc diff --git a/demo/src/server/liquid_framebuffer/target.mk b/demo/src/server/liquid_framebuffer/target.mk index 5678711021..8ed86f1e2f 100644 --- a/demo/src/server/liquid_framebuffer/target.mk +++ b/demo/src/server/liquid_framebuffer/target.mk @@ -1,5 +1,5 @@ TARGET = liquid_fb -LIBS = scout_widgets +LIBS = scout_widgets config SRC_CC = main.cc services.cc INC_DIR += $(REP_DIR)/src/app/scout/include \ $(REP_DIR)/src/app/scout/include/genode \ diff --git a/gems/src/server/terminal/target.mk b/gems/src/server/terminal/target.mk index 46b6e93be2..86d2c79bed 100644 --- a/gems/src/server/terminal/target.mk +++ b/gems/src/server/terminal/target.mk @@ -1,4 +1,4 @@ TARGET = terminal SRC_CC = main.cc -LIBS = base +LIBS = base config SRC_BIN = $(notdir $(wildcard $(PRG_DIR)/*.tff)) diff --git a/libports/lib/mk/libc.mk b/libports/lib/mk/libc.mk index 0db85d8415..cb031c0d1f 100644 --- a/libports/lib/mk/libc.mk +++ b/libports/lib/mk/libc.mk @@ -4,7 +4,7 @@ LIBS = libc-string libc-locale libc-stdlib libc-stdio libc-gen libc-gdtoa \ libc-inet libc-stdtime libc-regex libc-compat libc-setjmp -LIBS += base +LIBS += base config # # Back end diff --git a/libports/src/app/qt5/qt_avplay/main_window.cpp b/libports/src/app/qt5/qt_avplay/main_window.cpp index e3c0909785..163dd9ded0 100644 --- a/libports/src/app/qt5/qt_avplay/main_window.cpp +++ b/libports/src/app/qt5/qt_avplay/main_window.cpp @@ -86,9 +86,7 @@ Main_window::Main_window() qDebug() << "filter:" << framebuffer_filter->name << "," << framebuffer_filter->ram_quota; framebuffer_filters.prepend(framebuffer_filter); } - } catch (Config::Invalid) { - } catch (Xml_node::Nonexistent_sub_node) { - } + } catch (Xml_node::Nonexistent_sub_node) { } /* start the filtering framebuffer services */ diff --git a/libports/src/drivers/framebuffer/vesa/target.mk b/libports/src/drivers/framebuffer/vesa/target.mk index 7cf5614516..cb0b71000d 100644 --- a/libports/src/drivers/framebuffer/vesa/target.mk +++ b/libports/src/drivers/framebuffer/vesa/target.mk @@ -1,5 +1,5 @@ TARGET = fb_drv REQUIRES = vesa SRC_CC = main.cc framebuffer.cc ifx86emu.cc hw_emul.cc -LIBS = base blit x86emu +LIBS = base blit x86emu config INC_DIR += $(PRG_DIR)/include $(REP_DIR)/include/x86emu diff --git a/libports/src/lib/sdl/audio/SDL_genodeaudio.cc b/libports/src/lib/sdl/audio/SDL_genodeaudio.cc index 5cff4c5287..276055e265 100644 --- a/libports/src/lib/sdl/audio/SDL_genodeaudio.cc +++ b/libports/src/lib/sdl/audio/SDL_genodeaudio.cc @@ -83,7 +83,6 @@ static void read_config() volume = (float)config_volume / 100; } - catch (Genode::Config::Invalid) { } catch (Genode::Xml_node::Nonexistent_sub_node) { } catch (Genode::Xml_node::Nonexistent_attribute) { } } diff --git a/libports/src/server/ffat_fs/target.mk b/libports/src/server/ffat_fs/target.mk index bea2bf85b2..0ec6a59b92 100644 --- a/libports/src/server/ffat_fs/target.mk +++ b/libports/src/server/ffat_fs/target.mk @@ -1,4 +1,4 @@ TARGET = ffat_fs SRC_CC = main.cc -LIBS = base ffat_block +LIBS = base ffat_block config INC_DIR += $(PRG_DIR) diff --git a/os/include/os/config.h b/os/include/os/config.h index 9dcf2931cf..dfc013a124 100644 --- a/os/include/os/config.h +++ b/os/include/os/config.h @@ -14,100 +14,53 @@ #ifndef _INCLUDE__OS__CONFIG_H_ #define _INCLUDE__OS__CONFIG_H_ -#include -#include #include +#include +#include #include namespace Genode { - class Config - { - private: - - Rom_connection _config_rom; - Dataspace_capability _config_ds; - Xml_node _config_xml; - - Xml_node _config_xml_node() - { - if (_config_ds.valid()) - return Xml_node(env()->rm_session()->attach(_config_ds), - Genode::Dataspace_client(_config_ds).size()); - else - return Xml_node(""); - } - - public: - - /** - * Exception class for configuration errors - */ - class Invalid : public Exception { }; - - /** - * Constructor - */ - Config() : - _config_rom("config"), - _config_ds(_config_rom.dataspace()), - _config_xml(_config_xml_node()) - { } - - Xml_node xml_node() { return _config_xml; } - - /** - * Register signal handler for tracking config modifications - */ - void sigh(Signal_context_capability cap) { _config_rom.sigh(cap); } - - /** - * Reload configuration - * - * \throw Invalid if the new configuration has an invalid syntax - * - * This function is meant to be called as response to a signal - * received by the signal handler as registered via 'sigh()'. - */ - void reload() - { - try { - /* re-acquire dataspace from ROM session */ - if (_config_ds.valid()) - env()->rm_session()->detach(_config_xml.addr()); - - _config_ds = _config_rom.dataspace(); - - /* re-initialize XML node with new config data */ - _config_xml = _config_xml_node(); - - } catch (Genode::Xml_node::Invalid_syntax) { - PERR("Config file has invalid syntax"); - throw Invalid(); - } - } - }; + class Config; /** * Return singleton instance of config */ - static Config *config() - { - static bool config_failed = false; - if (!config_failed) { - try { - static Config config_inst; - return &config_inst; - } catch (Genode::Rom_connection::Rom_connection_failed) { - PERR("Could not obtain config file"); - } catch (Genode::Xml_node::Invalid_syntax) { - PERR("Config file has invalid syntax"); - } - } - /* do not try again to construct 'config_inst' */ - config_failed = true; - throw Config::Invalid(); - } + Config *config(); } + +class Genode::Config +{ + private: + + Rom_connection _config_rom; + Dataspace_capability _config_ds; + Xml_node _config_xml; + + public: + + /** + * Constructor + */ + Config(); + + Xml_node xml_node(); + + /** + * Register signal handler for tracking config modifications + */ + void sigh(Signal_context_capability cap); + + /** + * Reload configuration + * + * \throw Invalid if the new configuration has an invalid syntax + * + * This function is meant to be called as response to a signal + * received by the signal handler as registered via 'sigh()'. + */ + void reload(); +}; + #endif /* _INCLUDE__OS__CONFIG_H_ */ diff --git a/os/lib/mk/config.mk b/os/lib/mk/config.mk new file mode 100644 index 0000000000..e47bb7504f --- /dev/null +++ b/os/lib/mk/config.mk @@ -0,0 +1,3 @@ +SRC_CC = config.cc + +vpath config.cc $(REP_DIR)/src/lib/config diff --git a/os/lib/mk/config_args.mk b/os/lib/mk/config_args.mk index dbf9be6a1e..3f8f4d64b2 100644 --- a/os/lib/mk/config_args.mk +++ b/os/lib/mk/config_args.mk @@ -1,3 +1,5 @@ SRC_CC = config_args.cc +LIBS += config + vpath %.cc $(REP_DIR)/src/lib/config_args diff --git a/os/src/app/cli_monitor/target.mk b/os/src/app/cli_monitor/target.mk index 18b6022462..e6fa140576 100644 --- a/os/src/app/cli_monitor/target.mk +++ b/os/src/app/cli_monitor/target.mk @@ -1,4 +1,4 @@ TARGET = cli_monitor SRC_CC = main.cc -LIBS = base cli_monitor +LIBS = base cli_monitor config INC_DIR += $(PRG_DIR) diff --git a/os/src/app/xvfb/target.mk b/os/src/app/xvfb/target.mk index 82ce6cd52c..d456edf93d 100644 --- a/os/src/app/xvfb/target.mk +++ b/os/src/app/xvfb/target.mk @@ -1,6 +1,6 @@ TARGET = xvfb REQUIRES = linux x11 xtest xdamage SRC_CC = main.cc inject_input.cc -LIBS = base_hybrid syscall blit xev_track +LIBS = base_hybrid syscall blit xev_track config EXT_OBJECTS += -lX11 -lXdamage /usr/lib/libXtst.so.6 diff --git a/os/src/drivers/atapi/target.mk b/os/src/drivers/atapi/target.mk index 51fc38a0c8..837bd5e39b 100644 --- a/os/src/drivers/atapi/target.mk +++ b/os/src/drivers/atapi/target.mk @@ -2,7 +2,7 @@ TARGET = atapi_drv REQUIRES = x86 SRC_CC = main.cc ata_device.cc atapi_device.cc io.cc ata_bus_master.cc SRC_C = mindrvr.c -LIBS = base +LIBS = base config INC_DIR += $(PRG_DIR)/contrib $(PRG_DIR) diff --git a/os/src/drivers/framebuffer/imx53/target.mk b/os/src/drivers/framebuffer/imx53/target.mk index 54597876cf..4528586cc8 100644 --- a/os/src/drivers/framebuffer/imx53/target.mk +++ b/os/src/drivers/framebuffer/imx53/target.mk @@ -1,7 +1,7 @@ TARGET = fb_drv REQUIRES = imx53 SRC_CC = main.cc -LIBS = base blit +LIBS = base blit config INC_DIR += $(PRG_DIR) vpath main.cc $(PRG_DIR) diff --git a/os/src/drivers/framebuffer/omap4/target.mk b/os/src/drivers/framebuffer/omap4/target.mk index 98e3b900d3..820e840145 100644 --- a/os/src/drivers/framebuffer/omap4/target.mk +++ b/os/src/drivers/framebuffer/omap4/target.mk @@ -7,7 +7,7 @@ TARGET = fb_drv REQUIRES = omap4 SRC_CC = main.cc -LIBS = base +LIBS = base config INC_DIR += $(PRG_DIR) vpath main.cc $(PRG_DIR) diff --git a/os/src/drivers/pci/x86/target.mk b/os/src/drivers/pci/x86/target.mk index d3509e1729..2e67d748f1 100644 --- a/os/src/drivers/pci/x86/target.mk +++ b/os/src/drivers/pci/x86/target.mk @@ -1,7 +1,7 @@ TARGET = pci_drv REQUIRES = x86 SRC_CC = main.cc -LIBS = base +LIBS = base config INC_DIR = $(PRG_DIR)/.. diff --git a/os/src/drivers/uart/exynos5/target.mk b/os/src/drivers/uart/exynos5/target.mk index 183768ec4e..8b751b3203 100644 --- a/os/src/drivers/uart/exynos5/target.mk +++ b/os/src/drivers/uart/exynos5/target.mk @@ -1,6 +1,6 @@ TARGET = uart_drv REQUIRES = exynos5 SRC_CC = main.cc -LIBS = base +LIBS = base config INC_DIR += $(PRG_DIR) $(PRG_DIR)/.. diff --git a/os/src/drivers/uart/i8250/target.mk b/os/src/drivers/uart/i8250/target.mk index 8422bdb918..5b6aaf5d69 100644 --- a/os/src/drivers/uart/i8250/target.mk +++ b/os/src/drivers/uart/i8250/target.mk @@ -1,6 +1,6 @@ TARGET = uart_drv REQUIRES = x86 SRC_CC = main.cc -LIBS = base +LIBS = base config INC_DIR += $(PRG_DIR) $(PRG_DIR)/.. diff --git a/os/src/drivers/uart/kdb/target.inc b/os/src/drivers/uart/kdb/target.inc index 398fb9529e..d1146ea51c 100644 --- a/os/src/drivers/uart/kdb/target.inc +++ b/os/src/drivers/uart/kdb/target.inc @@ -1,6 +1,6 @@ TARGET = kdb_uart_drv SRC_CC = main.cc -LIBS = base +LIBS = base config INC_DIR += $(PRG_DIR)/.. $(PRG_DIR)/../.. diff --git a/os/src/drivers/uart/omap4/target.mk b/os/src/drivers/uart/omap4/target.mk index 2d005d15f1..9ae42a4709 100644 --- a/os/src/drivers/uart/omap4/target.mk +++ b/os/src/drivers/uart/omap4/target.mk @@ -1,6 +1,6 @@ TARGET = uart_drv REQUIRES = omap4 SRC_CC = main.cc -LIBS = base +LIBS = base config INC_DIR += $(PRG_DIR) $(PRG_DIR)/.. diff --git a/os/src/drivers/uart/pl011/target.mk b/os/src/drivers/uart/pl011/target.mk index d755a7ff01..19e69ce1bf 100644 --- a/os/src/drivers/uart/pl011/target.mk +++ b/os/src/drivers/uart/pl011/target.mk @@ -1,6 +1,6 @@ TARGET = uart_drv REQUIRES = pl011 SRC_CC = main.cc -LIBS = base +LIBS = base config INC_DIR += $(PRG_DIR) $(PRG_DIR)/.. diff --git a/os/src/init/main.cc b/os/src/init/main.cc index 1be73402b6..47d87f5616 100644 --- a/os/src/init/main.cc +++ b/os/src/init/main.cc @@ -229,8 +229,8 @@ int main(int, char **) } catch (Xml_node::Nonexistent_sub_node) { PERR("No children to start"); } - catch (Config::Invalid) { - PERR("No valid config found"); } + catch (Xml_node::Invalid_syntax) { + PERR("No children to start"); } catch (Init::Child::Child_name_is_not_unique) { } /* diff --git a/os/src/init/target.mk b/os/src/init/target.mk index 8998b99c90..5d1a5574a9 100644 --- a/os/src/init/target.mk +++ b/os/src/init/target.mk @@ -1,3 +1,3 @@ TARGET = init SRC_CC = main.cc -LIBS = base init_pd_args +LIBS = base init_pd_args config diff --git a/os/src/lib/config/config.cc b/os/src/lib/config/config.cc new file mode 100644 index 0000000000..bf7a80bb5a --- /dev/null +++ b/os/src/lib/config/config.cc @@ -0,0 +1,97 @@ +/* + * \brief Access to process configuration + * \author Norman Feske + * \date 2010-05-04 + */ + +/* + * Copyright (C) 2010-2013 Genode Labs GmbH + * + * This file is part of the Genode OS framework, which is distributed + * under the terms of the GNU General Public License version 2. + */ + +#include + +using namespace Genode; + +Xml_node _config_xml_node(Dataspace_capability config_ds) +{ + return Xml_node(env()->rm_session()->attach(config_ds), + Genode::Dataspace_client(config_ds).size()); +} + + +/** + * Fallback XML node used if the configuration is broken + */ +static Xml_node fallback_config_xml() +{ + return Xml_node(""); +} + + +void Config::reload() +{ + if (!this) + return; + + try { + /* re-acquire dataspace from ROM session */ + if (_config_ds.valid()) + env()->rm_session()->detach(_config_xml.addr()); + + _config_ds = _config_rom.dataspace(); + + /* re-initialize XML node with new config data */ + _config_xml = _config_xml_node(_config_ds); + + } catch (Genode::Xml_node::Invalid_syntax) { + PERR("Config file has invalid syntax"); + _config_xml = fallback_config_xml(); + } +} + + +Xml_node Config::xml_node() +{ + if (!this) + return fallback_config_xml(); + + return _config_xml; +} + + +void Config::sigh(Signal_context_capability cap) +{ + if (this) + _config_rom.sigh(cap); +} + + +Config::Config() +: + _config_rom("config"), + _config_ds(_config_rom.dataspace()), + _config_xml(_config_xml_node(_config_ds)) +{ } + + +Config *Genode::config() +{ + static bool config_failed = false; + if (!config_failed) { + try { + static Config config_inst; + return &config_inst; + } catch (Genode::Rom_connection::Rom_connection_failed) { + PERR("Could not obtain config file"); + } catch (Genode::Xml_node::Invalid_syntax) { + PERR("Config file has invalid syntax"); + } + } + /* do not try again to construct 'config_inst' */ + config_failed = true; + return 0; +} + diff --git a/os/src/lib/config_args/config_args.cc b/os/src/lib/config_args/config_args.cc index 22fa90caf7..916e9c0424 100644 --- a/os/src/lib/config_args/config_args.cc +++ b/os/src/lib/config_args/config_args.cc @@ -37,7 +37,6 @@ void init_config_args(void) arg_node = arg_node.next("arg"); } } - catch (Config::Invalid) { return; } catch (Xml_node::Nonexistent_sub_node) { } catch (Xml_node::Nonexistent_attribute) { diff --git a/os/src/server/nic_bridge/target.mk b/os/src/server/nic_bridge/target.mk index d947284ebe..5308f64770 100644 --- a/os/src/server/nic_bridge/target.mk +++ b/os/src/server/nic_bridge/target.mk @@ -1,5 +1,5 @@ TARGET = nic_bridge -LIBS = base net +LIBS = base net config SRC_CC = component.cc env.cc mac.cc main.cc nic.cc packet_handler.cc vpath *.cc $(REP_DIR)/src/server/proxy_arp diff --git a/os/src/server/nit_fb/target.mk b/os/src/server/nit_fb/target.mk index c0aaaa218a..182c61049d 100644 --- a/os/src/server/nit_fb/target.mk +++ b/os/src/server/nit_fb/target.mk @@ -1,3 +1,3 @@ TARGET = nit_fb SRC_CC = main.cc -LIBS = base +LIBS = base config diff --git a/os/src/server/nitpicker/genode/target.mk b/os/src/server/nitpicker/genode/target.mk index 0aa75cf79f..ae28706f71 100644 --- a/os/src/server/nitpicker/genode/target.mk +++ b/os/src/server/nitpicker/genode/target.mk @@ -1,5 +1,5 @@ TARGET = nitpicker -LIBS = base blit +LIBS = base blit config SRC_CC = main.cc \ view_stack.cc \ view.cc \ diff --git a/os/src/server/part_blk/target.mk b/os/src/server/part_blk/target.mk index 5734caf6d8..7653984545 100644 --- a/os/src/server/part_blk/target.mk +++ b/os/src/server/part_blk/target.mk @@ -1,3 +1,3 @@ TARGET = part_blk -LIBS = base +LIBS = base config SRC_CC = main.cc back_end.cc diff --git a/os/src/server/ram_fs/main.cc b/os/src/server/ram_fs/main.cc index b5b80bb5e3..a56da5ca6e 100644 --- a/os/src/server/ram_fs/main.cc +++ b/os/src/server/ram_fs/main.cc @@ -635,7 +635,6 @@ int main(int, char **) Xml_node content = config()->xml_node().sub_node("content"); preload_content(*env()->heap(), content, root_dir); } catch (Xml_node::Nonexistent_sub_node) { } - catch (Config::Invalid) { } static File_system::Root root(ep, sliced_heap, sig_rec, root_dir); diff --git a/os/src/server/ram_fs/target.mk b/os/src/server/ram_fs/target.mk index 5023a7f3d6..0e8238db08 100644 --- a/os/src/server/ram_fs/target.mk +++ b/os/src/server/ram_fs/target.mk @@ -1,4 +1,4 @@ TARGET = ram_fs SRC_CC = main.cc -LIBS = base +LIBS = base config INC_DIR += $(PRG_DIR) diff --git a/os/src/server/rom_loopdev/target.mk b/os/src/server/rom_loopdev/target.mk index 819c241f21..4d2045bc8a 100644 --- a/os/src/server/rom_loopdev/target.mk +++ b/os/src/server/rom_loopdev/target.mk @@ -1,3 +1,3 @@ TARGET = rom_loopdev SRC_CC = main.cc -LIBS = base +LIBS = base config diff --git a/os/src/server/rom_prefetcher/target.mk b/os/src/server/rom_prefetcher/target.mk index aaa5fe061b..3edca88ea2 100644 --- a/os/src/server/rom_prefetcher/target.mk +++ b/os/src/server/rom_prefetcher/target.mk @@ -1,3 +1,3 @@ TARGET = rom_prefetcher SRC_CC = main.cc -LIBS += base +LIBS += base config diff --git a/os/src/server/tar_fs/target.mk b/os/src/server/tar_fs/target.mk index 6d3e85930f..13f893266b 100644 --- a/os/src/server/tar_fs/target.mk +++ b/os/src/server/tar_fs/target.mk @@ -1,4 +1,4 @@ TARGET = tar_fs SRC_CC = main.cc -LIBS = base +LIBS = base config INC_DIR += $(PRG_DIR) diff --git a/os/src/server/tar_rom/target.mk b/os/src/server/tar_rom/target.mk index d13b6fbf5c..679e7bf44a 100755 --- a/os/src/server/tar_rom/target.mk +++ b/os/src/server/tar_rom/target.mk @@ -1,3 +1,3 @@ TARGET = tar_rom SRC_CC = main.cc -LIBS = base +LIBS = base config diff --git a/os/src/test/audio_out/target.mk b/os/src/test/audio_out/target.mk index feb92edbea..e3bfd78691 100644 --- a/os/src/test/audio_out/target.mk +++ b/os/src/test/audio_out/target.mk @@ -1,3 +1,3 @@ TARGET = test-audio_out SRC_CC = main.cc -LIBS = base +LIBS = base config diff --git a/os/src/test/bomb/target.mk b/os/src/test/bomb/target.mk index c1142e2024..38cbc46590 100644 --- a/os/src/test/bomb/target.mk +++ b/os/src/test/bomb/target.mk @@ -1,3 +1,3 @@ TARGET = bomb SRC_CC = main.cc -LIBS = base +LIBS = base config diff --git a/os/src/test/chroot_loader/target.mk b/os/src/test/chroot_loader/target.mk index f818a7d7c7..86b1dd1d07 100644 --- a/os/src/test/chroot_loader/target.mk +++ b/os/src/test/chroot_loader/target.mk @@ -1,4 +1,4 @@ TARGET = test-chroot_loader REQUIRES += linux SRC_CC = main.cc -LIBS += base +LIBS += base config diff --git a/os/src/test/dynamic_config/main.cc b/os/src/test/dynamic_config/main.cc index 017dce645d..86deb69791 100644 --- a/os/src/test/dynamic_config/main.cc +++ b/os/src/test/dynamic_config/main.cc @@ -42,12 +42,8 @@ int main(int, char **) /* wait for config change */ sig_rec.wait_for_signal(); - try { - Genode::config()->reload(); - parse_config(); - } catch (Genode::Config::Invalid) { - PERR("Error: reloading config failed"); - } + Genode::config()->reload(); + parse_config(); } return 0; } diff --git a/os/src/test/dynamic_config/target.mk b/os/src/test/dynamic_config/target.mk index 45a4db1519..aa23a399d2 100644 --- a/os/src/test/dynamic_config/target.mk +++ b/os/src/test/dynamic_config/target.mk @@ -1,3 +1,3 @@ TARGET = test-dynamic_config SRC_CC = main.cc -LIBS = base +LIBS = base config diff --git a/os/src/test/part_blk/target.mk b/os/src/test/part_blk/target.mk index 493302aeff..521e963e08 100644 --- a/os/src/test/part_blk/target.mk +++ b/os/src/test/part_blk/target.mk @@ -1,3 +1,3 @@ TARGET = test-part SRC_CC = main.cc -LIBS = base +LIBS = base config diff --git a/os/src/test/rom_blk/target.mk b/os/src/test/rom_blk/target.mk index a7ccab986b..0db517a1a9 100644 --- a/os/src/test/rom_blk/target.mk +++ b/os/src/test/rom_blk/target.mk @@ -1,3 +1,3 @@ TARGET = test-rom_blk SRC_CC = main.cc -LIBS = base +LIBS = base config diff --git a/os/src/test/trace/target.mk b/os/src/test/trace/target.mk index a5a6abb453..9bd4c73f2d 100644 --- a/os/src/test/trace/target.mk +++ b/os/src/test/trace/target.mk @@ -1,3 +1,3 @@ TARGET = test-trace SRC_CC = main.cc -LIBS += base +LIBS += base config diff --git a/ports-foc/lib/mk/l4lx.mk b/ports-foc/lib/mk/l4lx.mk index 2994505350..250320048b 100644 --- a/ports-foc/lib/mk/l4lx.mk +++ b/ports-foc/lib/mk/l4lx.mk @@ -32,6 +32,6 @@ SRC_CC += env.cc \ INC_DIR += $(REP_DIR)/include \ $(REP_DIR)/src/lib/l4lx/include \ -LIBS = base +LIBS = base config vpath %.cc $(REP_DIR)/src/lib/l4lx diff --git a/ports-foc/mk/l4lx.mk b/ports-foc/mk/l4lx.mk index 4a0c02d59e..b5afefccff 100644 --- a/ports-foc/mk/l4lx.mk +++ b/ports-foc/mk/l4lx.mk @@ -3,7 +3,7 @@ VERBOSE_LX_MK ?= 0 REQUIRES += foc INC_DIR += $(REP_DIR)/include LIBS = l4lx l4sys -GENODE_LIBS := base base-common startup syscall cxx l4lx l4sys +GENODE_LIBS := base base-common startup syscall cxx l4lx l4sys config GENODE_LIBS := $(foreach l,$(GENODE_LIBS),$(BUILD_BASE_DIR)/var/libcache/$l/$l.lib.a) GENODE_LIBS_SORTED = $(sort $(wildcard $(GENODE_LIBS))) diff --git a/ports-okl4/lib/mk/oklx.mk b/ports-okl4/lib/mk/oklx.mk index df40296879..c7defb131a 100644 --- a/ports-okl4/lib/mk/oklx.mk +++ b/ports-okl4/lib/mk/oklx.mk @@ -21,7 +21,7 @@ SRC_CC += iguana_eas.cc \ iguana_tls.cc INC_DIR += $(REP_DIR)/include/oklx_lib INC_DIR += $(REP_DIR)/src/lib/oklx/include -LIBS = base +LIBS = base config # do not produce position-independent code CC_OPT_PIC = diff --git a/ports-okl4/patches/oklx_genode.patch b/ports-okl4/patches/oklx_genode.patch index 31e077cf8a..80ebba4b4c 100644 --- a/ports-okl4/patches/oklx_genode.patch +++ b/ports-okl4/patches/oklx_genode.patch @@ -192,7 +192,7 @@ diff -urNpB kernel-2.6.23-v2/arch/l4/Makefile contrib/arch/l4/Makefile -libs-y += -lvtimer -lvserial -ll4e -lll -liguana -ll4 -lgcc -lmutex -lcircular_buffer -lc -latomic_ops -lfs +#libs-y += -lvtimer -lvserial -ll4e -lll -liguana -ll4 -lgcc -lmutex -lcircular_buffer -lc -latomic_ops -lfs + -+GENODE_LIBS = base base-common cxx startup \ ++GENODE_LIBS = base base-common cxx startup config \ + oklx + +libs-y += $(addprefix $(GENODE_LIBS_DIR)/,$(foreach l,$(GENODE_LIBS),$l/$l.lib.a)) diff --git a/ports/src/noux/minimal/target.mk b/ports/src/noux/minimal/target.mk index 986280c4f1..c358824726 100644 --- a/ports/src/noux/minimal/target.mk +++ b/ports/src/noux/minimal/target.mk @@ -1,5 +1,5 @@ TARGET = noux -LIBS = base alarm +LIBS = base alarm config SRC_CC = main.cc dummy_net.cc INC_DIR += $(PRG_DIR) INC_DIR += $(PRG_DIR)/../ diff --git a/ports/src/noux/net/target.mk b/ports/src/noux/net/target.mk index 67877462b0..6a80335c2a 100644 --- a/ports/src/noux/net/target.mk +++ b/ports/src/noux/net/target.mk @@ -1,5 +1,5 @@ TARGET = noux_net -LIBS += alarm libc libc_lwip +LIBS += alarm libc libc_lwip config SRC_CC = main.cc net.cc diff --git a/ports/src/test/gdb_monitor_target_config/main.cc b/ports/src/test/gdb_monitor_target_config/main.cc index 8cd7098eb6..d52695068c 100644 --- a/ports/src/test/gdb_monitor_target_config/main.cc +++ b/ports/src/test/gdb_monitor_target_config/main.cc @@ -20,9 +20,6 @@ int main(void) { try { config()->xml_node().sub_node("test_config_subnode"); - } catch(Config::Invalid) { - PERR("Error: Missing '' node."); - return -1; } catch (Xml_node::Nonexistent_sub_node) { PERR("Error: Missing '' sub node."); return -1; diff --git a/ports/src/test/gdb_monitor_target_config/target.mk b/ports/src/test/gdb_monitor_target_config/target.mk index 44568173e2..983ddc65b5 100644 --- a/ports/src/test/gdb_monitor_target_config/target.mk +++ b/ports/src/test/gdb_monitor_target_config/target.mk @@ -1,3 +1,3 @@ TARGET = test-gdb_monitor_target_config SRC_CC = main.cc -LIBS = base +LIBS = base config diff --git a/ports/src/vancouver/target.inc b/ports/src/vancouver/target.inc index b4a76ba96a..61d6a2b0d1 100644 --- a/ports/src/vancouver/target.inc +++ b/ports/src/vancouver/target.inc @@ -11,7 +11,7 @@ ifeq ($(wildcard $(VANCOUVER_DIR)),) REQUIRES += prepare_ports_vancouver endif -LIBS += base blit alarm seoul_libc_support +LIBS += base blit alarm seoul_libc_support config SRC_CC = main.cc nova_user_env.cc device_model_registry.cc SRC_CC += console.cc keyboard.cc network.cc disk.cc SRC_BIN = mono.tff diff --git a/qt4/src/app/qt_avplay/main_window.cpp b/qt4/src/app/qt_avplay/main_window.cpp index e3c0909785..163dd9ded0 100644 --- a/qt4/src/app/qt_avplay/main_window.cpp +++ b/qt4/src/app/qt_avplay/main_window.cpp @@ -86,9 +86,7 @@ Main_window::Main_window() qDebug() << "filter:" << framebuffer_filter->name << "," << framebuffer_filter->ram_quota; framebuffer_filters.prepend(framebuffer_filter); } - } catch (Config::Invalid) { - } catch (Xml_node::Nonexistent_sub_node) { - } + } catch (Xml_node::Nonexistent_sub_node) { } /* start the filtering framebuffer services */