/* * \brief Client-side topology session interface * \author Michael Müller * \date 2022-10-06 * * A topology session stores the component's view on the hardware topology, i.e. it's location within the NUMA topology. */ /* * Copyright (C) 2022 Michael Müller * * This file is part of EalánOS which is based on the Genode OS framework * released under the terms of the GNU Affero General Public License version 3. */ #pragma once #include #include #include #include namespace Genode { struct Topo_session_client; struct Node; } struct Genode::Topo_session_client : Rpc_client { explicit Topo_session_client(Topo_session_capability session) : Rpc_client(session) { } Topology::Numa_region node_affinity_of(Affinity::Location const &loc) override { return call(loc); } Topology::Numa_region node_at_id(unsigned node_id) override { return call(node_id); } unsigned node_count() override { return call(); } void reconstruct(const Affinity affinity) override { call(affinity); } unsigned phys_id(const Affinity::Location &loc) override { return call(loc); } Affinity::Space const global_affinity_space() override { return call(); } };