mirror of
https://github.com/mmueller41/genode.git
synced 2026-01-21 12:32:56 +01:00
@@ -55,8 +55,8 @@ class Genode::Local_parent : public Expanding_parent_client
|
||||
** Parent interface **
|
||||
**********************/
|
||||
|
||||
Session_capability session(Client::Id, Service_name const &, Session_args const &,
|
||||
Affinity const & = Affinity()) override;
|
||||
Session_result session(Client::Id, Service_name const &, Session_args const &,
|
||||
Affinity const & = Affinity()) override;
|
||||
Close_result close(Client::Id) override;
|
||||
|
||||
/**
|
||||
|
||||
@@ -40,11 +40,15 @@ struct Genode::Platform
|
||||
|
||||
Local_parent parent { _obtain_parent_cap(), rm, heap };
|
||||
|
||||
Pd_session_capability pd_cap =
|
||||
static_cap_cast<Pd_session>(parent.session_cap(Parent::Env::pd()));
|
||||
Capability<Pd_session> pd_cap =
|
||||
parent.session_cap(Parent::Env::pd()).convert<Capability<Pd_session>>(
|
||||
[&] (Capability<Session> cap) { return static_cap_cast<Pd_session>(cap); },
|
||||
[&] (Parent::Session_cap_error) { return Capability<Pd_session>(); });
|
||||
|
||||
Cpu_session_capability cpu_cap =
|
||||
static_cap_cast<Cpu_session>(parent.session_cap(Parent::Env::cpu()));
|
||||
Capability<Cpu_session> cpu_cap =
|
||||
parent.session_cap(Parent::Env::cpu()).convert<Capability<Cpu_session>>(
|
||||
[&] (Capability<Session> cap) { return static_cap_cast<Cpu_session>(cap); },
|
||||
[&] (Parent::Session_cap_error) { return Capability<Cpu_session>(); });
|
||||
|
||||
Local_pd_session pd { parent, pd_cap };
|
||||
|
||||
|
||||
@@ -58,10 +58,10 @@ bool Region_map_mmap::_dataspace_writeable(Dataspace_capability ds)
|
||||
** Local_parent **
|
||||
******************/
|
||||
|
||||
Session_capability Local_parent::session(Parent::Client::Id id,
|
||||
Service_name const &service_name,
|
||||
Session_args const &args,
|
||||
Affinity const &affinity)
|
||||
Parent::Session_result Local_parent::session(Parent::Client::Id id,
|
||||
Service_name const &service_name,
|
||||
Session_args const &args,
|
||||
Affinity const &affinity)
|
||||
{
|
||||
if (strcmp(service_name.string(), Rm_session::service_name()) == 0) {
|
||||
|
||||
@@ -87,7 +87,7 @@ Parent::Close_result Local_parent::close(Client::Id id)
|
||||
Capability<Rm_session> rm =
|
||||
static_cap_cast<Rm_session>(local_session.local_session_cap());
|
||||
destroy(_alloc, Local_capability<Rm_session>::deref(rm));
|
||||
return CLOSE_DONE;
|
||||
return Parent::Close_result::DONE;
|
||||
},
|
||||
[&] /* missing */ {
|
||||
return Parent_client::close(id); });
|
||||
|
||||
Reference in New Issue
Block a user