From 32d16c17929fc58a9fa7ab3d7ea7c8df81e4fbc3 Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Wed, 26 Apr 2017 19:40:02 -0500 Subject: [PATCH] app/launcher: support Fix #2404 --- repos/gems/src/app/launcher/subsystem_manager.h | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/repos/gems/src/app/launcher/subsystem_manager.h b/repos/gems/src/app/launcher/subsystem_manager.h index 8e4e2a425..627aa67bb 100644 --- a/repos/gems/src/app/launcher/subsystem_manager.h +++ b/repos/gems/src/app/launcher/subsystem_manager.h @@ -199,8 +199,19 @@ class Launcher::Subsystem_manager /* configure child */ try { - Xml_node config_node = subsystem.sub_node("config"); - child->configure(config_node.addr(), config_node.size()); + if (subsystem.has_sub_node("configfile")) { + Genode::String<96> name; + Xml_node node = subsystem.sub_node("configfile"); + Xml_attribute attr = node.attribute("name"); + attr.value(&name); + + Attached_rom_dataspace rom(_env, name.string()); + Xml_node config_node = rom.xml(); + child->configure(config_node.addr(), config_node.size()); + } else { + Xml_node config_node = subsystem.sub_node("config"); + child->configure(config_node.addr(), config_node.size()); + } } catch (...) { } _children.insert(child);