diff --git a/repos/dde_bsd/include/audio/audio.h b/repos/dde_bsd/include/audio/audio.h
index bcf262110f..a7262299b5 100644
--- a/repos/dde_bsd/include/audio/audio.h
+++ b/repos/dde_bsd/include/audio/audio.h
@@ -41,9 +41,9 @@ namespace Audio_in {
namespace Audio {
- void update_config(Genode::Env &, Genode::Xml_node);
+ void update_config(Genode::Env &, Genode::Xml_node const &);
- void init_driver(Genode::Env &, Genode::Allocator &, Genode::Xml_node,
+ void init_driver(Genode::Env &, Genode::Allocator &, Genode::Xml_node const &,
Genode::Signal_context_capability);
void play_sigh(Genode::Signal_context_capability cap);
diff --git a/repos/dde_bsd/src/lib/audio/driver.cc b/repos/dde_bsd/src/lib/audio/driver.cc
index 19ade56860..a65424f261 100644
--- a/repos/dde_bsd/src/lib/audio/driver.cc
+++ b/repos/dde_bsd/src/lib/audio/driver.cc
@@ -17,6 +17,7 @@
#include
#include
#include
+#include
#include
/* format-string includes */
@@ -387,7 +388,7 @@ static void report_mixer_state(Mixer &mixer, Genode::Env *env = nullptr)
}
-static void configure_mixer(Genode::Env &env, Mixer &mixer, Genode::Xml_node config)
+static void configure_mixer(Genode::Env &env, Mixer &mixer, Genode::Xml_node const &config)
{
using namespace Genode;
@@ -396,7 +397,7 @@ static void configure_mixer(Genode::Env &env, Mixer &mixer, Genode::Xml_node con
Mic_mode mode = config.attribute_value("mic_priority", Mic_mode("external"));
mic_priority_external = (mode == "internal") ? false : true;
- config.for_each_sub_node("mixer", [&] (Xml_node node) {
+ config.for_each_sub_node("mixer", [&] (Xml_node const &node) {
typedef String<32> Field;
typedef String<16> Value;
@@ -412,7 +413,7 @@ static void configure_mixer(Genode::Env &env, Mixer &mixer, Genode::Xml_node con
}
-static bool configure_audio_device(Genode::Env &env, dev_t dev, Genode::Xml_node config)
+static bool configure_audio_device(Genode::Env &env, dev_t dev, Genode::Xml_node const &config)
{
struct audio_swpar ap;
@@ -478,14 +479,14 @@ namespace {
{
Genode::Env &env;
Genode::Allocator &alloc;
- Genode::Xml_node config;
+ Genode::Buffered_xml const config;
Genode::Signal_context_capability announce_sigh;
Task_args(Genode::Env &env, Genode::Allocator &alloc,
- Genode::Xml_node config,
+ Genode::Xml_node const &config,
Genode::Signal_context_capability announce_sigh)
:
- env(env), alloc(alloc), config(config),
+ env(env), alloc(alloc), config(alloc, config),
announce_sigh(announce_sigh)
{ }
};
@@ -516,7 +517,7 @@ namespace {
template
Task(Genode::Env &env, Genode::Allocator &alloc,
- Genode::Xml_node config,
+ Genode::Xml_node const &config,
Genode::Signal_context_capability announce_sigh)
:
_args { env, alloc, config, announce_sigh },
@@ -571,7 +572,7 @@ void run_bsd(void *p)
}
adev_usuable = configure_audio_device(task->_args.env, adev,
- task->_args.config);
+ task->_args.config.xml);
if (adev_usuable && task->_args.announce_sigh.valid()) {
Genode::Signal_transmitter(task->_args.announce_sigh).submit();
@@ -633,7 +634,7 @@ extern "C" void notify_hp_sense(int const sense)
** private Audio namespace **
*****************************/
-void Audio::update_config(Genode::Env &env, Genode::Xml_node config)
+void Audio::update_config(Genode::Env &env, Genode::Xml_node const &config)
{
if (mixer.info == nullptr) { return; }
@@ -647,7 +648,7 @@ static Task *_bsd_task;
void Audio::init_driver(Genode::Env &env, Genode::Allocator &alloc,
- Genode::Xml_node config,
+ Genode::Xml_node const &config,
Genode::Signal_context_capability announce_sigh)
{
Bsd::mem_init(env, alloc);
diff --git a/repos/dde_bsd/src/lib/audio/pci.cc b/repos/dde_bsd/src/lib/audio/pci.cc
index 191f6beab9..838c11dfed 100644
--- a/repos/dde_bsd/src/lib/audio/pci.cc
+++ b/repos/dde_bsd/src/lib/audio/pci.cc
@@ -101,7 +101,7 @@ class Pci_driver
bool device_list = false;
while (!device_list) {
pci.update();
- pci.with_xml([&] (Xml_node & xml) {
+ pci.with_xml([&] (Xml_node const &xml) {
if (xml.num_sub_nodes()) {
pci.sigh(Signal_context_capability());
if (handler.constructed())
@@ -153,15 +153,15 @@ class Pci_driver
bool found = false;
_pci.update();
- _pci.with_xml([&] (Xml_node node) {
- node.for_each_sub_node("device", [&] (Xml_node node)
+ _pci.with_xml([&] (Xml_node const &node) {
+ node.for_each_sub_node("device", [&] (Xml_node const &node)
{
/* only use the first successfully probed device */
if (found) return;
String<16> name = node.attribute_value("name", String<16>());
- node.with_optional_sub_node("pci-config", [&] (Xml_node node)
+ node.with_optional_sub_node("pci-config", [&] (Xml_node const &node)
{
_vendor_id = node.attribute_value("vendor_id", 0U);
_device_id = node.attribute_value("device_id", 0U);
diff --git a/repos/dde_ipxe/src/lib/dde_ipxe/dde_support.cc b/repos/dde_ipxe/src/lib/dde_ipxe/dde_support.cc
index 1ba8d8a250..ac684762dc 100644
--- a/repos/dde_ipxe/src/lib/dde_ipxe/dde_support.cc
+++ b/repos/dde_ipxe/src/lib/dde_ipxe/dde_support.cc
@@ -185,10 +185,10 @@ struct Pci_driver
Pci_driver(Genode::Env &env) : _env(env)
{
_pci.update();
- _pci.with_xml([&] (Xml_node node) {
- node.with_optional_sub_node("device", [&] (Xml_node node)
+ _pci.with_xml([&] (Xml_node const &node) {
+ node.with_optional_sub_node("device", [&] (Xml_node const &node)
{
- node.with_optional_sub_node("pci-config", [&] (Xml_node node)
+ node.with_optional_sub_node("pci-config", [&] (Xml_node const &node)
{
_name = node.attribute_value("name", String<16>());
_pci_info.vendor = node.attribute_value("vendor_id", 0U);
@@ -198,13 +198,13 @@ struct Pci_driver
_pci_info.name = _name.string();
});
- node.with_optional_sub_node("io_mem", [&] (Xml_node node)
+ node.with_optional_sub_node("io_mem", [&] (Xml_node const &node)
{
_mmio.construct(_dev);
_pci_info.io_mem_addr = (addr_t)_mmio->local_addr();
});
- node.with_optional_sub_node("io_port", [&] (Xml_node node)
+ node.with_optional_sub_node("io_port", [&] (Xml_node const &node)
{
_io_port.construct(_dev);
_pci_info.io_port_start = 0x10;
diff --git a/repos/dde_linux/src/driver/usb_hid/led_state.h b/repos/dde_linux/src/driver/usb_hid/led_state.h
index 8842d6b2e7..8115f95e25 100644
--- a/repos/dde_linux/src/driver/usb_hid/led_state.h
+++ b/repos/dde_linux/src/driver/usb_hid/led_state.h
@@ -35,7 +35,7 @@ struct Usb::Led_state
Led_state(Genode::Env &env, Name const &name) : _env(env), _name(name) { }
- void update(Genode::Xml_node config, Genode::Signal_context_capability sigh)
+ void update(Genode::Xml_node const &config, Genode::Signal_context_capability sigh)
{
using Attr = Genode::String<32>;
using Value = Genode::String<16>;
diff --git a/repos/dde_linux/src/driver/usb_hid/main.cc b/repos/dde_linux/src/driver/usb_hid/main.cc
index 462b340612..e58097725e 100644
--- a/repos/dde_linux/src/driver/usb_hid/main.cc
+++ b/repos/dde_linux/src/driver/usb_hid/main.cc
@@ -82,7 +82,7 @@ struct Main
void handle_config()
{
config_rom.update();
- Genode::Xml_node config = config_rom.xml();
+ Genode::Xml_node const &config = config_rom.xml();
capslock.update(config, config_handler);
numlock .update(config, config_handler);
scrlock .update(config, config_handler);
diff --git a/repos/pc/src/driver/framebuffer/intel/pc/emul.cc b/repos/pc/src/driver/framebuffer/intel/pc/emul.cc
index 55c718b869..bcb013f013 100644
--- a/repos/pc/src/driver/framebuffer/intel/pc/emul.cc
+++ b/repos/pc/src/driver/framebuffer/intel/pc/emul.cc
@@ -25,9 +25,9 @@ unsigned short emul_intel_gmch_control_reg()
using namespace Genode;
unsigned short ret = 0;
- Lx_kit::env().devices.with_xml([&] (Xml_node node) {
- node.for_each_sub_node("device", [&] (Xml_node node) {
- node.for_each_sub_node("pci-config", [&] (Xml_node node) {
+ Lx_kit::env().devices.with_xml([&] (Xml_node const &node) {
+ node.for_each_sub_node("device", [&] (Xml_node const &node) {
+ node.for_each_sub_node("pci-config", [&] (Xml_node const &node) {
unsigned short gmch =
node.attribute_value("intel_gmch_control", 0U);
if (gmch) ret = gmch;
diff --git a/repos/ports/src/app/verify/main.cc b/repos/ports/src/app/verify/main.cc
index 2f2d5307c3..89119feb86 100644
--- a/repos/ports/src/app/verify/main.cc
+++ b/repos/ports/src/app/verify/main.cc
@@ -49,7 +49,7 @@ struct Verify::Main
return Message();
}
- void _process_verify_node(Xml_node, Xml_generator &);
+ void _process_verify_node(Xml_node const &, Xml_generator &);
void _handle_config_with_libc();
void _handle_config() { Libc::with_libc([&] () { _handle_config_with_libc(); }); }
@@ -63,7 +63,7 @@ struct Verify::Main
};
-void Verify::Main::_process_verify_node(Xml_node node, Xml_generator &xml)
+void Verify::Main::_process_verify_node(Xml_node const &node, Xml_generator &xml)
{
Path const data_path = node.attribute_value("path", Path());
Path const pubkey_path = node.attribute_value("pubkey", Path());
@@ -86,7 +86,7 @@ void Verify::Main::_process_verify_node(Xml_node node, Xml_generator &xml)
void Verify::Main::_handle_config_with_libc()
{
- Xml_node const config = _config.xml();
+ Xml_node const &config = _config.xml();
_verbose = _config.xml().attribute_value("verbose", false);
@@ -95,7 +95,7 @@ void Verify::Main::_handle_config_with_libc()
}
_reporter->generate([&] (Xml_generator &xml) {
- config.for_each_sub_node("verify", [&] (Xml_node node) {
+ config.for_each_sub_node("verify", [&] (Xml_node const &node) {
_process_verify_node(node, xml); }); });
}