mirror of
https://github.com/genodelabs/genode.git
synced 2025-06-18 23:28:29 +00:00
base: use 'Quota_transfer::Account' for 'Service'
This patch makes use of the new 'Quota_transfer::Account' by the service types in base/service.h and uses 'Quota_transfer' objects in base/child.cc and init/server.cc. Furthermore, it decouples the notion of an 'Async_service' from 'Child_service'. Init's 'Routed_service' is no longer a 'Child_service' but is based on the new 'Async_service' instead. With this patch in place, quota transfers do no longer implicitly use 'Ram_session_client' objects. So transfers can in principle originate from component-local 'Ram_session_component' objects, e.g., as used by noux. Therefore, this patch removes a strumbling block for turning noux into a single threaded component in the future. Issue #2398
This commit is contained in:
committed by
Christian Helmuth
parent
5c43074bc6
commit
3670f7735d
@ -196,10 +196,12 @@ class Launcher::Fading_dialog : private Input_event_handler
|
||||
_fader_slave_ep(&env.pd(), _fader_slave_ep_stack_size, "nit_fader"),
|
||||
_nitpicker_connection(env, "menu"),
|
||||
_nitpicker_session(env, _nitpicker_connection, env.ep(), _fader_slave_ep, *this),
|
||||
_nit_fader_slave(_fader_slave_ep, env.rm(), env.ram_session_cap(),
|
||||
_nit_fader_slave(_fader_slave_ep, env.rm(),
|
||||
env.ram(), env.ram_session_cap(),
|
||||
_nitpicker_service),
|
||||
_nit_fader_connection(env.rm(), _nit_fader_slave.policy(), Slave::Args("label=menu")),
|
||||
_menu_view_slave(env.pd(), env.rm(), env.ram_session_cap(),
|
||||
_menu_view_slave(env.pd(), env.rm(),
|
||||
env.ram(), env.ram_session_cap(),
|
||||
_nit_fader_connection,
|
||||
_dialog_rom, _hover_report, initial_position)
|
||||
{
|
||||
|
@ -43,7 +43,8 @@ struct Launcher::Main
|
||||
"</config>";
|
||||
|
||||
Report_rom_slave _report_rom_slave {
|
||||
_env.pd(), _env.rm(), _env.ram_session_cap(), _report_rom_config };
|
||||
_env.pd(), _env.rm(), _env.ram(), _env.ram_session_cap(),
|
||||
_report_rom_config };
|
||||
|
||||
/**
|
||||
* Nitpicker session used to perform session-control operations on the
|
||||
|
@ -80,13 +80,15 @@ class Launcher::Menu_view_slave
|
||||
|
||||
Policy(Genode::Rpc_entrypoint &ep,
|
||||
Genode::Region_map &rm,
|
||||
Genode::Ram_session_capability ram,
|
||||
Genode::Ram_session &ref_ram,
|
||||
Genode::Ram_session_capability ref_ram_cap,
|
||||
Capability<Nitpicker::Session> nitpicker_session,
|
||||
Capability<Rom_session> dialog_rom_session,
|
||||
Capability<Report::Session> hover_report_session,
|
||||
Position position)
|
||||
:
|
||||
Genode::Slave::Policy(_name(), _name(), *this, ep, rm, ram, _quota()),
|
||||
Genode::Slave::Policy(_name(), _name(), *this, ep, rm,
|
||||
ref_ram, ref_ram_cap, _quota()),
|
||||
_nitpicker(rm, nitpicker_session),
|
||||
_dialog_rom(dialog_rom_session),
|
||||
_hover_report(hover_report_session),
|
||||
@ -127,14 +129,16 @@ class Launcher::Menu_view_slave
|
||||
*/
|
||||
Menu_view_slave(Genode::Pd_session &pd,
|
||||
Genode::Region_map &rm,
|
||||
Genode::Ram_session_capability ram,
|
||||
Genode::Ram_session &ref_ram,
|
||||
Genode::Ram_session_capability ref_ram_cap,
|
||||
Capability<Nitpicker::Session> nitpicker_session,
|
||||
Capability<Rom_session> dialog_rom_session,
|
||||
Capability<Report::Session> hover_report_session,
|
||||
Position initial_position)
|
||||
:
|
||||
_ep(&pd, _ep_stack_size, "nit_fader"),
|
||||
_policy(_ep, rm, ram, nitpicker_session, dialog_rom_session,
|
||||
_policy(_ep, rm, ref_ram, ref_ram_cap,
|
||||
nitpicker_session, dialog_rom_session,
|
||||
hover_report_session, initial_position),
|
||||
_child(rm, _ep, _policy)
|
||||
{ }
|
||||
|
@ -52,10 +52,12 @@ class Launcher::Nit_fader_slave
|
||||
|
||||
Policy(Rpc_entrypoint &ep,
|
||||
Region_map &rm,
|
||||
Ram_session_capability ram,
|
||||
Ram_session &ref_ram,
|
||||
Ram_session_capability ref_ram_cap,
|
||||
Genode::Service &nitpicker_service)
|
||||
:
|
||||
Genode::Slave::Policy(_name(), _name(), *this, ep, rm, ram, _quota()),
|
||||
Genode::Slave::Policy(_name(), _name(), *this, ep, rm,
|
||||
ref_ram, ref_ram_cap, _quota()),
|
||||
_nitpicker_service(nitpicker_service)
|
||||
{
|
||||
visible(false);
|
||||
@ -87,16 +89,17 @@ class Launcher::Nit_fader_slave
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* \param ep entrypoint used for nitpicker child thread
|
||||
* \param ram RAM session used to allocate the configuration
|
||||
* dataspace
|
||||
* \param ep entrypoint used for nitpicker child thread
|
||||
* \param ref_ram RAM session used to allocate the configuration
|
||||
* dataspace and child memory
|
||||
*/
|
||||
Nit_fader_slave(Rpc_entrypoint &ep,
|
||||
Genode::Region_map &rm,
|
||||
Ram_session_capability ram,
|
||||
Ram_session &ref_ram,
|
||||
Ram_session_capability ref_ram_cap,
|
||||
Genode::Service &nitpicker_service)
|
||||
:
|
||||
_policy(ep, rm, ram, nitpicker_service),
|
||||
_policy(ep, rm, ref_ram, ref_ram_cap, nitpicker_service),
|
||||
_child(rm, ep, _policy)
|
||||
{
|
||||
visible(false);
|
||||
|
Reference in New Issue
Block a user