Genode::Capability_space: bypass static constructor where possible

This commit is contained in:
Ehmry - 2019-09-28 11:37:44 +02:00
parent 6e9f9ce3a8
commit 5e87eee9b8
5 changed files with 22 additions and 30 deletions

View File

@ -56,11 +56,9 @@ using namespace Genode;
*/
namespace {
struct Local_capability_space
:
using Local_capability_space =
Capability_space_sel4<1UL << Core_cspace::NUM_CORE_SEL_LOG2, 0UL,
Native_capability::Data>
{ };
Native_capability::Data>;
static Local_capability_space &local_capability_space()
{
@ -150,13 +148,13 @@ void Capability_space::inc_ref(Native_capability::Data &data)
Rpc_obj_key Capability_space::rpc_obj_key(Native_capability::Data const &data)
{
return local_capability_space().rpc_obj_key(data);
return Local_capability_space::rpc_obj_key(data);
}
Capability_space::Ipc_cap_data Capability_space::ipc_cap_data(Native_capability const &cap)
{
return local_capability_space().ipc_cap_data(*cap.data());
return Local_capability_space::ipc_cap_data(*cap.data());
}

View File

@ -38,11 +38,9 @@ using namespace Genode;
*/
namespace {
struct Local_capability_space
:
using Local_capability_space =
Capability_space_sel4<8*1024, 1UL << NUM_CORE_MANAGED_SEL_LOG2,
Native_capability::Data>
{ };
Native_capability::Data>;
static Local_capability_space &local_capability_space()
{
@ -123,7 +121,7 @@ Rpc_obj_key Capability_space::rpc_obj_key(Native_capability::Data const &data)
void Capability_space::print(Output &out, Native_capability::Data const &data)
{
return local_capability_space().print(out, data);
return Local_capability_space::print(out, data);
}

View File

@ -24,7 +24,7 @@
*/
struct Genode::Native_capability::Data : Capability_data
{
Rpc_destination dst = invalid_rpc_destination();
Rpc_destination dst { invalid_rpc_destination() };
Data(Rpc_destination dst, Rpc_obj_key key)
: Capability_data(key), dst(dst) { }
@ -43,10 +43,8 @@ namespace {
enum { NUM_LOCAL_CAPS = 64*1024 };
struct Local_capability_space
:
Capability_space_tpl<NUM_LOCAL_CAPS, Native_capability::Data>
{ };
using Local_capability_space
= Capability_space_tpl<NUM_LOCAL_CAPS, Native_capability::Data>;
static Local_capability_space &local_capability_space()
{
@ -74,13 +72,13 @@ void Capability_space::inc_ref(Native_capability::Data &data)
Rpc_obj_key Capability_space::rpc_obj_key(Native_capability::Data const &data)
{
return local_capability_space().rpc_obj_key(data);
return Local_capability_space::rpc_obj_key(data);
}
Capability_space::Ipc_cap_data Capability_space::ipc_cap_data(Native_capability const &cap)
{
return local_capability_space().ipc_cap_data(*cap.data());
return Local_capability_space::ipc_cap_data(*cap.data());
}
@ -101,5 +99,5 @@ size_t Capability_space::max_caps() { return NUM_LOCAL_CAPS; }
void Capability_space::print(Output &out, Native_capability::Data const &data)
{
local_capability_space().print(out, data);
Local_capability_space::print(out, data);
}

View File

@ -180,17 +180,17 @@ class Genode::Capability_space_tpl
throw Native_capability::Reference_count_overflow();
}
Rpc_obj_key rpc_obj_key(Data const &data) const
static Rpc_obj_key rpc_obj_key(Data const &data)
{
return data.rpc_obj_key();
}
void print(Output &out, Data const &data) const
static void print(Output &out, Data const &data)
{
ipc_cap_data(data).print(out);
}
Capability_space::Ipc_cap_data ipc_cap_data(Data const &data) const
static Capability_space::Ipc_cap_data ipc_cap_data(Data const &data)
{
return { data.dst, data.rpc_obj_key() };
}

View File

@ -24,7 +24,7 @@
*/
struct Genode::Native_capability::Data : Capability_data
{
Rpc_destination dst = invalid_rpc_destination();
Rpc_destination dst { invalid_rpc_destination() };
Data(Rpc_destination dst, Rpc_obj_key key)
: Capability_data(key), dst(dst) { }
@ -41,10 +41,8 @@ using namespace Genode;
*/
namespace {
struct Local_capability_space
:
Capability_space_tpl<4*1024, Native_capability::Data>
{ };
using Local_capability_space
= Capability_space_tpl<4*1024, Native_capability::Data>;
static Local_capability_space &local_capability_space()
{
@ -72,13 +70,13 @@ void Capability_space::inc_ref(Native_capability::Data &data)
Rpc_obj_key Capability_space::rpc_obj_key(Native_capability::Data const &data)
{
return local_capability_space().rpc_obj_key(data);
return Local_capability_space::rpc_obj_key(data);
}
Capability_space::Ipc_cap_data Capability_space::ipc_cap_data(Native_capability const &cap)
{
return local_capability_space().ipc_cap_data(*cap.data());
return Local_capability_space::ipc_cap_data(*cap.data());
}
@ -96,5 +94,5 @@ Native_capability Capability_space::import(Rpc_destination dst, Rpc_obj_key key)
void Capability_space::print(Output &out, Native_capability::Data const &data)
{
local_capability_space().print(out, data);
Local_capability_space::print(out, data);
}