os: make report_rom/rom_module.h better reusable

This commit is contained in:
Norman Feske
2016-10-07 15:36:23 +02:00
committed by Christian Helmuth
parent c0e0f2874a
commit a27cbfd371
4 changed files with 26 additions and 12 deletions

View File

@ -59,10 +59,11 @@ struct Rom::Registry : Rom::Registry_for_reader, Rom::Registry_for_writer
/**
* Constructor
*/
Registry(Module::Read_policy const &read_policy,
Registry(Genode::Ram_session &ram, Genode::Region_map &rm,
Module::Read_policy const &read_policy,
Module::Write_policy const &write_policy)
:
module("clipboard", read_policy, write_policy)
module(ram, rm, "clipboard", read_policy, write_policy)
{ }
};
@ -199,7 +200,7 @@ struct Clipboard::Main : Rom::Module::Read_policy, Rom::Module::Write_policy
return false;
}
Rom::Registry _rom_registry { *this, *this };
Rom::Registry _rom_registry { _env.ram(), _env.rm(), *this, *this };
Report::Root report_root = { _env, _sliced_heap, _rom_registry, verbose };
Rom ::Root rom_root = { _env, _sliced_heap, _rom_registry };

View File

@ -32,7 +32,7 @@ struct Report_rom::Main
Genode::Sliced_heap sliced_heap { env.ram(), env.rm() };
Rom::Registry rom_registry { sliced_heap, config_rom };
Rom::Registry rom_registry { sliced_heap, env.ram(), env.rm(), config_rom };
Genode::Attached_rom_dataspace config_rom { env, "config" };

View File

@ -25,7 +25,9 @@ struct Rom::Registry : Registry_for_reader, Registry_for_writer, Genode::Noncopy
{
private:
Genode::Allocator &_md_alloc;
Genode::Allocator &_md_alloc;
Genode::Ram_session &_ram;
Genode::Region_map &_rm;
Genode::Attached_rom_dataspace &_config_rom;
Module_list _modules;
@ -70,7 +72,7 @@ struct Rom::Registry : Registry_for_reader, Registry_for_writer, Genode::Noncopy
/* XXX if we run out of memory, the server will abort */
Module * const module = new (&_md_alloc)
Module(name, _read_write_policy, _read_write_policy);
Module(_ram, _rm, name, _read_write_policy, _read_write_policy);
_modules.insert(module);
return *module;
@ -144,9 +146,10 @@ struct Rom::Registry : Registry_for_reader, Registry_for_writer, Genode::Noncopy
public:
Registry(Genode::Allocator &md_alloc,
Genode::Ram_session &ram, Genode::Region_map &rm,
Genode::Attached_rom_dataspace &config_rom)
:
_md_alloc(md_alloc), _config_rom(config_rom)
_md_alloc(md_alloc), _ram(ram), _rm(rm), _config_rom(config_rom)
{ }
Module &lookup(Writer &writer, Module::Name const &name) override