base-linux: support invalid dataspace for RM client
This restores behavior introduced in
commit cb232891bf
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;
|
using namespace Genode;
|
||||||
|
|
||||||
class Invalid_capability : public Genode::Exception {};
|
class Capability_invalid : public Genode::Exception {};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return pointer to locally implemented region map
|
* 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)
|
static Region_map *_local(Capability<Region_map> cap)
|
||||||
{
|
{
|
||||||
if (!cap.valid())
|
if (!cap.valid())
|
||||||
throw Invalid_capability();
|
throw Capability_invalid();
|
||||||
return Local_capability<Region_map>::deref(cap);
|
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(); }
|
Region_map::State Region_map_client::state() { return _local(rpc_cap())->state(); }
|
||||||
|
|
||||||
|
|
||||||
Dataspace_capability Region_map_client::dataspace() {
|
Dataspace_capability Region_map_client::dataspace()
|
||||||
return _local(rpc_cap()) ? _local(rpc_cap())->dataspace() : Dataspace_capability(); }
|
{
|
||||||
|
try {
|
||||||
|
return _local(rpc_cap())->dataspace();
|
||||||
|
} catch (Capability_invalid&) { return Dataspace_capability(); }
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user