diff --git a/base/mk/base-libs.mk b/base/mk/base-libs.mk index 58c01c5e6..245434e6a 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 754df0fab..f83e206f2 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 13a3571e2..88b062215 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 99f8448d7..ef4c951a9 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 df8a3b2c2..0b54bd086 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 567871102..8ed86f1e2 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 46b6e93be..86d2c79be 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 0db85d841..cb031c0d1 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 e3c090978..163dd9ded 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 7cf561451..cb0b71000 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 5cff4c528..276055e26 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 bea2bf85b..0ec6a59b9 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 9dcf2931c..dfc013a12 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 000000000..e47bb7504 --- /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 dbf9be6a1..3f8f4d64b 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 18b602246..e6fa14057 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 82ce6cd52..d456edf93 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 51fc38a0c..837bd5e39 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 54597876c..4528586cc 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 98e3b900d..820e84014 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 d3509e172..2e67d748f 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 183768ec4..8b751b320 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 8422bdb91..5b6aaf5d6 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 398fb9529..d1146ea51 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 2d005d15f..9ae42a470 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 d755a7ff0..19e69ce1b 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 1be73402b..47d87f561 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 8998b99c9..5d1a5574a 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 000000000..bf7a80bb5 --- /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 22fa90caf..916e9c042 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 d947284eb..5308f6477 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 c0aaaa218..182c61049 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 0aa75cf79..ae28706f7 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 5734caf6d..765398454 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 b5b80bb5e..a56da5ca6 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 5023a7f3d..0e8238db0 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 819c241f2..4d2045bc8 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 aaa5fe061..3edca88ea 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 6d3e85930..13f893266 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 d13b6fbf5..679e7bf44 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 feb92edbe..e3bfd7869 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 c1142e202..38cbc4659 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 f818a7d7c..86b1dd1d0 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 017dce645..86deb6979 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 45a4db151..aa23a399d 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 493302aef..521e963e0 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 a7ccab986..0db517a1a 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 a5a6abb45..9bd4c73f2 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 299450535..250320048 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 4a0c02d59..b5afefccf 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 df4029687..c7defb131 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 31e077cf8..80ebba4b4 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 986280c4f..c35882472 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 67877462b..6a80335c2 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 8cd7098eb..d52695068 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 44568173e..983ddc65b 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 b4a76ba96..61d6a2b0d 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 e3c090978..163dd9ded 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 */