From da184d07a1f32bfb6caba9c1a004d30c0c934aa9 Mon Sep 17 00:00:00 2001 From: Michael Mueller Date: Thu, 27 Feb 2025 16:21:16 +0100 Subject: [PATCH] Added RPC to get a habitat's affinity. --- repos/base-tukija/include/habitat/client.h | 5 +++++ repos/base-tukija/include/habitat/connection.h | 5 +++++ repos/base-tukija/include/habitat/session.h | 7 ++++++- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/repos/base-tukija/include/habitat/client.h b/repos/base-tukija/include/habitat/client.h index bba03336c2..f8bdab3726 100644 --- a/repos/base-tukija/include/habitat/client.h +++ b/repos/base-tukija/include/habitat/client.h @@ -30,5 +30,10 @@ struct Ealan::Habitat_client : Genode::Rpc_client Cell_capability create_cell(Genode::Capability pd, Genode::Affinity &affinity, Genode::uint16_t prio, Genode::Session_label const &label) override { return call(pd, affinity, prio, label); } + + Genode::Affinity affinity() override + { + return call(); + } }; #endif \ No newline at end of file diff --git a/repos/base-tukija/include/habitat/connection.h b/repos/base-tukija/include/habitat/connection.h index d1620128ca..f64739720b 100644 --- a/repos/base-tukija/include/habitat/connection.h +++ b/repos/base-tukija/include/habitat/connection.h @@ -31,6 +31,11 @@ struct Ealan::Habitat_connection : Genode::Connection, H Cell_capability create_cell(Genode::Capability pd_cap, Genode::Affinity &affinity, Genode::uint16_t prio, Genode::Session_label const &label) override { return Habitat_client::create_cell(pd_cap, affinity, prio, label); } + + Genode::Affinity affinity() override + { + return Habitat_client::affinity(); + } }; #endif diff --git a/repos/base-tukija/include/habitat/session.h b/repos/base-tukija/include/habitat/session.h index 32afc91b25..0d73db0f88 100644 --- a/repos/base-tukija/include/habitat/session.h +++ b/repos/base-tukija/include/habitat/session.h @@ -19,6 +19,7 @@ #include #include #include +#include namespace Ealan { struct Habitat_session; } @@ -33,7 +34,11 @@ struct Ealan::Habitat_session : Genode::Session */ virtual Cell_capability create_cell(Genode::Capability pd, Genode::Affinity &affinity, Genode::uint16_t prio, Genode::Session_label const &label) = 0; + virtual Genode::Affinity affinity() = 0; + GENODE_RPC(Rpc_create_cell, Cell_capability, create_cell, Genode::Capability, Genode::Affinity &, Genode::uint16_t, Genode::Session_label const &); - GENODE_RPC_INTERFACE(Rpc_create_cell); + GENODE_RPC(Rpc_affinity, Genode::Affinity, affinity); + + GENODE_RPC_INTERFACE(Rpc_create_cell, Rpc_affinity); }; #endif \ No newline at end of file