mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-29 18:18:54 +00:00
parent
c95f11418a
commit
f14213b5f4
@ -183,13 +183,20 @@ namespace Genode {
|
|||||||
catch (Root::Invalid_args) { throw Invalid_args(); }
|
catch (Root::Invalid_args) { throw Invalid_args(); }
|
||||||
catch (Root::Unavailable) { throw Unavailable(); }
|
catch (Root::Unavailable) { throw Unavailable(); }
|
||||||
catch (Root::Quota_exceeded) { throw Quota_exceeded(); }
|
catch (Root::Quota_exceeded) { throw Quota_exceeded(); }
|
||||||
|
catch (Genode::Ipc_error) { throw Unavailable(); }
|
||||||
}
|
}
|
||||||
|
|
||||||
void upgrade(Session_capability session, const char *args) {
|
void upgrade(Session_capability session, const char *args)
|
||||||
_root->upgrade(session, args); }
|
{
|
||||||
|
try { _root->upgrade(session, args); }
|
||||||
|
catch (Genode::Ipc_error) { throw Unavailable(); }
|
||||||
|
}
|
||||||
|
|
||||||
void close(Session_capability session) {
|
void close(Session_capability session)
|
||||||
_root->close(session); }
|
{
|
||||||
|
try { _root->close(session); }
|
||||||
|
catch (Genode::Ipc_error) { throw Blocking_canceled(); }
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -210,13 +217,20 @@ namespace Genode {
|
|||||||
throw Unavailable();
|
throw Unavailable();
|
||||||
}
|
}
|
||||||
catch (Parent::Quota_exceeded) { throw Quota_exceeded(); }
|
catch (Parent::Quota_exceeded) { throw Quota_exceeded(); }
|
||||||
|
catch (Genode::Ipc_error) { throw Unavailable(); }
|
||||||
}
|
}
|
||||||
|
|
||||||
void upgrade(Session_capability session, const char *args) {
|
void upgrade(Session_capability session, const char *args)
|
||||||
env()->parent()->upgrade(session, args); }
|
{
|
||||||
|
try { env()->parent()->upgrade(session, args); }
|
||||||
|
catch (Genode::Ipc_error) { throw Unavailable(); }
|
||||||
|
}
|
||||||
|
|
||||||
void close(Session_capability session) {
|
void close(Session_capability session)
|
||||||
env()->parent()->close(session); }
|
{
|
||||||
|
try { env()->parent()->close(session); }
|
||||||
|
catch (Genode::Ipc_error) { throw Blocking_canceled(); }
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -256,6 +270,7 @@ namespace Genode {
|
|||||||
catch (Root::Invalid_args) { throw Invalid_args(); }
|
catch (Root::Invalid_args) { throw Invalid_args(); }
|
||||||
catch (Root::Unavailable) { throw Unavailable(); }
|
catch (Root::Unavailable) { throw Unavailable(); }
|
||||||
catch (Root::Quota_exceeded) { throw Quota_exceeded(); }
|
catch (Root::Quota_exceeded) { throw Quota_exceeded(); }
|
||||||
|
catch (Genode::Ipc_error) { throw Unavailable(); }
|
||||||
}
|
}
|
||||||
|
|
||||||
void upgrade(Session_capability sc, const char *args)
|
void upgrade(Session_capability sc, const char *args)
|
||||||
@ -267,9 +282,14 @@ namespace Genode {
|
|||||||
catch (Root::Invalid_args) { throw Invalid_args(); }
|
catch (Root::Invalid_args) { throw Invalid_args(); }
|
||||||
catch (Root::Unavailable) { throw Unavailable(); }
|
catch (Root::Unavailable) { throw Unavailable(); }
|
||||||
catch (Root::Quota_exceeded) { throw Quota_exceeded(); }
|
catch (Root::Quota_exceeded) { throw Quota_exceeded(); }
|
||||||
|
catch (Genode::Ipc_error) { throw Unavailable(); }
|
||||||
}
|
}
|
||||||
|
|
||||||
void close(Session_capability sc) { _root.close(sc); }
|
void close(Session_capability sc)
|
||||||
|
{
|
||||||
|
try { _root.close(sc); }
|
||||||
|
catch (Genode::Ipc_error) { throw Blocking_canceled(); }
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -294,6 +294,7 @@ namespace Init {
|
|||||||
catch (Genode::Root::Invalid_args) { throw Invalid_args(); }
|
catch (Genode::Root::Invalid_args) { throw Invalid_args(); }
|
||||||
catch (Genode::Root::Unavailable) { throw Unavailable(); }
|
catch (Genode::Root::Unavailable) { throw Unavailable(); }
|
||||||
catch (Genode::Root::Quota_exceeded) { throw Quota_exceeded(); }
|
catch (Genode::Root::Quota_exceeded) { throw Quota_exceeded(); }
|
||||||
|
catch (Genode::Ipc_error) { throw Unavailable(); }
|
||||||
|
|
||||||
if (!cap.valid())
|
if (!cap.valid())
|
||||||
throw Unavailable();
|
throw Unavailable();
|
||||||
@ -303,12 +304,15 @@ namespace Init {
|
|||||||
|
|
||||||
void upgrade(Genode::Session_capability sc, const char *args)
|
void upgrade(Genode::Session_capability sc, const char *args)
|
||||||
{
|
{
|
||||||
Genode::Root_client(_root).upgrade(sc, args);
|
try { Genode::Root_client(_root).upgrade(sc, args); }
|
||||||
|
catch (Genode::Root::Invalid_args) { throw Invalid_args(); }
|
||||||
|
catch (Genode::Ipc_error) { throw Unavailable(); }
|
||||||
}
|
}
|
||||||
|
|
||||||
void close(Genode::Session_capability sc)
|
void close(Genode::Session_capability sc)
|
||||||
{
|
{
|
||||||
Genode::Root_client(_root).close(sc);
|
try { Genode::Root_client(_root).close(sc); }
|
||||||
|
catch (Genode::Ipc_error) { throw Genode::Blocking_canceled(); }
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user