From 6afe4f79a2a7ab7546ed15d2b391a3d1192be5b2 Mon Sep 17 00:00:00 2001 From: Stefan Kalkowski <stefan.kalkowski@genode-labs.com> Date: Thu, 27 Jun 2024 10:55:55 +0200 Subject: [PATCH] base: tie quota_lim_downscale template to size_t * Always use size_t instead of template type * Thereby we can remove 128-bit type from all architectures in base-hw Ref genodelabs/genode#5310 --- repos/base-hw/src/core/cpu_session_support.cc | 2 +- repos/base-hw/src/core/kernel/main.cc | 3 --- repos/base-hw/src/core/kernel/thread.cc | 3 +-- repos/base-hw/src/core/spec/arm_v8/cpu.h | 3 +-- repos/base-hw/src/core/spec/riscv/cpu.h | 2 -- repos/base-hw/src/core/spec/x86_64/cpu.h | 1 - repos/base/include/cpu_session/cpu_session.h | 3 +-- 7 files changed, 4 insertions(+), 13 deletions(-) diff --git a/repos/base-hw/src/core/cpu_session_support.cc b/repos/base-hw/src/core/cpu_session_support.cc index 9b7bc77292..fbee7b6882 100644 --- a/repos/base-hw/src/core/cpu_session_support.cc +++ b/repos/base-hw/src/core/cpu_session_support.cc @@ -33,7 +33,7 @@ Dataspace_capability Cpu_thread_component::utcb() Cpu_session::Quota Cpu_session_component::quota() { size_t const spu = Kernel::cpu_quota_us; - size_t const u = quota_lim_downscale<sizet_arithm_t>(_quota, spu); + size_t const u = quota_lim_downscale(_quota, spu); return { spu, u }; } diff --git a/repos/base-hw/src/core/kernel/main.cc b/repos/base-hw/src/core/kernel/main.cc index 48b7669b1c..6849895966 100644 --- a/repos/base-hw/src/core/kernel/main.cc +++ b/repos/base-hw/src/core/kernel/main.cc @@ -92,9 +92,6 @@ void Kernel::main_handle_kernel_entry() void Kernel::main_initialize_and_handle_kernel_entry() { - static_assert(sizeof(Core::sizet_arithm_t) >= 2 * sizeof(size_t), - "Bad result type for size_t arithmetics."); - using Boot_info = Hw::Boot_info<Board::Boot_info>; static volatile bool instance_initialized { false }; diff --git a/repos/base-hw/src/core/kernel/thread.cc b/repos/base-hw/src/core/kernel/thread.cc index c8161299f3..f794d6f86a 100644 --- a/repos/base-hw/src/core/kernel/thread.cc +++ b/repos/base-hw/src/core/kernel/thread.cc @@ -302,12 +302,11 @@ Cpu_job * Thread::helping_destination() { size_t Thread::_core_to_kernel_quota(size_t const quota) const { using Genode::Cpu_session; - using Core::sizet_arithm_t; /* we assert at timer construction that cpu_quota_us in ticks fits size_t */ size_t const ticks = (size_t) _cpu->timer().us_to_ticks(Kernel::cpu_quota_us); - return Cpu_session::quota_lim_downscale<sizet_arithm_t>(quota, ticks); + return Cpu_session::quota_lim_downscale(quota, ticks); } diff --git a/repos/base-hw/src/core/spec/arm_v8/cpu.h b/repos/base-hw/src/core/spec/arm_v8/cpu.h index 86c88a9181..e4b38183cb 100644 --- a/repos/base-hw/src/core/spec/arm_v8/cpu.h +++ b/repos/base-hw/src/core/spec/arm_v8/cpu.h @@ -38,8 +38,7 @@ namespace Board { class Address_space_id_allocator; } namespace Core { struct Cpu; - using sizet_arithm_t = __uint128_t; - using uint128_t = __uint128_t; + using uint128_t = __uint128_t; } diff --git a/repos/base-hw/src/core/spec/riscv/cpu.h b/repos/base-hw/src/core/spec/riscv/cpu.h index c4fd1353d6..40db57db70 100644 --- a/repos/base-hw/src/core/spec/riscv/cpu.h +++ b/repos/base-hw/src/core/spec/riscv/cpu.h @@ -43,8 +43,6 @@ namespace Core { * CPU driver for core */ class Cpu; - - using sizet_arithm_t = __uint128_t; } diff --git a/repos/base-hw/src/core/spec/x86_64/cpu.h b/repos/base-hw/src/core/spec/x86_64/cpu.h index 116ab5fc92..c1e815e86a 100644 --- a/repos/base-hw/src/core/spec/x86_64/cpu.h +++ b/repos/base-hw/src/core/spec/x86_64/cpu.h @@ -42,7 +42,6 @@ namespace Board { class Address_space_id_allocator; } namespace Core { class Cpu; - using sizet_arithm_t = __uint128_t; } diff --git a/repos/base/include/cpu_session/cpu_session.h b/repos/base/include/cpu_session/cpu_session.h index a0c7200f4e..f47e6c1993 100644 --- a/repos/base/include/cpu_session/cpu_session.h +++ b/repos/base/include/cpu_session/cpu_session.h @@ -204,9 +204,8 @@ struct Genode::Cpu_session : Session /** * Scale down 'value' from the 'QUOTA_LIMIT' space to a space with 'limit' */ - template<typename T = size_t> static size_t quota_lim_downscale(size_t const value, size_t const limit) { - return (size_t)(((T)value * limit) >> Cpu_session::QUOTA_LIMIT_LOG2); } + return (size_t)(((uint64_t)value * limit) >> Cpu_session::QUOTA_LIMIT_LOG2); } /*****************************************