core: support to serve signals by another ep

Issue #2584
This commit is contained in:
Alexander Boettcher 2017-11-20 15:30:18 +01:00 committed by Christian Helmuth
parent d37f32fb21
commit 8bc4389411
4 changed files with 9 additions and 4 deletions

View File

@ -60,6 +60,7 @@ class Genode::Core_env : public Env_deprecated
_entrypoint(nullptr, ENTRYPOINT_STACK_SIZE, "entrypoint"),
_region_map(_entrypoint),
_pd_session(_entrypoint,
_entrypoint,
Session::Resources {
Ram_quota { platform()->ram_alloc()->avail() },
Cap_quota { platform()->max_caps() } },

View File

@ -30,6 +30,7 @@ class Genode::Pd_root : public Genode::Root_component<Genode::Pd_session_compone
private:
Rpc_entrypoint &_ep;
Rpc_entrypoint &_signal_ep;
Pager_entrypoint &_pager_ep;
Range_allocator &_phys_alloc;
Region_map &_local_rm;
@ -62,6 +63,7 @@ class Genode::Pd_root : public Genode::Root_component<Genode::Pd_session_compone
{
return new (md_alloc())
Pd_session_component(_ep,
_signal_ep,
session_resources_from_args(args),
session_label_from_args(args),
session_diag_from_args(args),
@ -84,6 +86,7 @@ class Genode::Pd_root : public Genode::Root_component<Genode::Pd_session_compone
* Constructor
*/
Pd_root(Rpc_entrypoint &ep,
Rpc_entrypoint &signal_ep,
Pager_entrypoint &pager_ep,
Range_allocator &phys_alloc,
Region_map &local_rm,
@ -91,8 +94,8 @@ class Genode::Pd_root : public Genode::Root_component<Genode::Pd_session_compone
Range_allocator &core_mem)
:
Root_component<Pd_session_component>(&ep, &md_alloc),
_ep(ep), _pager_ep(pager_ep), _phys_alloc(phys_alloc),
_local_rm(local_rm), _core_mem(core_mem)
_ep(ep), _signal_ep(signal_ep), _pager_ep(pager_ep),
_phys_alloc(phys_alloc), _local_rm(local_rm), _core_mem(core_mem)
{ }
};

View File

@ -116,6 +116,7 @@ class Genode::Pd_session_component : public Session_object<Pd_session>
* Constructor
*/
Pd_session_component(Rpc_entrypoint &ep,
Rpc_entrypoint &signal_ep,
Resources resources,
Label const &label,
Diag diag,
@ -132,7 +133,7 @@ class Genode::Pd_session_component : public Session_object<Pd_session>
_constrained_md_ram_alloc(*this, *this, *this),
_constrained_core_ram_alloc(*this, *this, core_mem),
_sliced_heap(_constrained_md_ram_alloc, local_rm),
_signal_broker(_sliced_heap, ep, ep),
_signal_broker(_sliced_heap, signal_ep, signal_ep),
_ram_ds_factory(ep, phys_alloc, phys_range, local_rm,
_constrained_core_ram_alloc),
_rpc_cap_factory(_sliced_heap),

View File

@ -256,7 +256,7 @@ int main()
static Rm_root rm_root (&ep, &sliced_heap, pager_ep);
static Cpu_root cpu_root (&ep, &ep, &pager_ep, &sliced_heap,
Trace::sources());
static Pd_root pd_root (ep, pager_ep, *platform()->ram_alloc(),
static Pd_root pd_root (ep, ep, pager_ep, *platform()->ram_alloc(),
local_rm, sliced_heap,
*platform_specific()->core_mem_alloc());
static Log_root log_root (&ep, &sliced_heap);