mirror of
https://github.com/genodelabs/genode.git
synced 2025-04-08 20:05:54 +00:00
base-linux: support invalid dataspace for RM client
This restores behavior introduced in commit cb232891bfb1882e9ef7b8a250eb4b14e0825434 Author: Norman Feske <norman.feske@genode-labs.com> Date: Tue May 10 11:55:25 2016 +0200 Fix noux.run on base-linux but removed by issue #2829. Related to issue #1938
This commit is contained in:
parent
6dae147785
commit
4299b85cdb
@ -19,7 +19,7 @@
|
||||
|
||||
using namespace Genode;
|
||||
|
||||
class Invalid_capability : public Genode::Exception {};
|
||||
class Capability_invalid : public Genode::Exception {};
|
||||
|
||||
/**
|
||||
* Return pointer to locally implemented region map
|
||||
@ -29,7 +29,7 @@ class Invalid_capability : public Genode::Exception {};
|
||||
static Region_map *_local(Capability<Region_map> cap)
|
||||
{
|
||||
if (!cap.valid())
|
||||
throw Invalid_capability();
|
||||
throw Capability_invalid();
|
||||
return Local_capability<Region_map>::deref(cap);
|
||||
}
|
||||
|
||||
@ -67,6 +67,9 @@ void Region_map_client::fault_handler(Signal_context_capability /*handler*/)
|
||||
Region_map::State Region_map_client::state() { return _local(rpc_cap())->state(); }
|
||||
|
||||
|
||||
Dataspace_capability Region_map_client::dataspace() {
|
||||
return _local(rpc_cap()) ? _local(rpc_cap())->dataspace() : Dataspace_capability(); }
|
||||
|
||||
Dataspace_capability Region_map_client::dataspace()
|
||||
{
|
||||
try {
|
||||
return _local(rpc_cap())->dataspace();
|
||||
} catch (Capability_invalid&) { return Dataspace_capability(); }
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user